ssl中间证书

中间证书,其实也叫中间CA(中间证书颁发机构,Intermediate certificate authority, Intermedia CA),对应的是根证书颁发机构(Root certificate authority ,Root CA)。为了验证证书是否可信,必须确保证书的颁发机构在设备的可信CA中。若是证书不是由可信CA签发,则会检查颁发这个CA证书的上层CA证书是不是可信CA,客户端将重复这个步骤,直到证实找到了可信CA(将容许创建可信链接)或者证实没有可信CA(将提示错误)。html

为了构建信任链,每一个证书都包括字段:“使用者”和“颁发者”。 中间CA将在这两个字段中显示不一样的信息,显示设备如何得到下一个CA证书,重复检查是不是可信CA。浏览器

根证书,必然是一个自签名的证书,“使用者”和“颁发者”都是相同的,因此不会进一步向下检查,若是根CA不是可信CA,则将不容许创建可信链接,并提示错误。安全

例如:一个服务器证书 domain.com,是由Intermedia CA签发,而Intermedia CA的颁发者Root CA在WEB浏览器可信CA列表中,则证书的信任链以下:服务器

证书 1 - 使用者:domain.com;颁发者:Intermedia CA网络

证书 2 - 使用者:Intermedia CA;颁发者: Root CAdom

证书 3 - 使用者:Root CA ; 办法和: Root CA工具

当Web浏览器验证到证书3:Root CA时,发现是一个可信CA,则完成验证,容许创建可信链接。固然有些状况下,Intermedia CA也在可信CA列表中,这个时候,就能够直接完成验证,创建可信链接。操作系统

为什么须要中间证书

  • 保护根证书。若是直接采用根证书签发证书,一旦发生根证书泄露,将形成极大的安全问题。因此目前根证书都要求离线保存,若是须要用根证书签名,则必须经过人手工方式,直接用根证书在线签发证书是不容许的。
  • 区分不一样类型的产品。针对DV,OV,EV等不一样类型,不一样安全级别的证书,CA会采用不一样的根证书,一来便于区分,二来一旦出现问题,也便于区别处理,下降影响。中间CA证书通常都是支持在线签发证书的。
  • 交叉验证。为了得到更好的兼容性,支持一些很古老的浏览器,有些根证书自己,也会被另一个很古老的根证书签名,这样根据浏览器的版本,可能会看到三层或者是四层的证书链结构,若是能看到四层的证书链结构,则说明浏览器的版本很老,只能经过最先的根证书来识别。

要得到中间证书,通常有两种方式:第一种、由客户端自动下载中间证书;第二种、由服务器推送中间证书。如下分别讨论。htm

客户端自动下载中间证书

一张标准的证书,都会包含本身的颁发者名称,以及颁发者机构访问信息: Authority Info Access,其中就会有颁发者CA证书的下载地址。blog

 authority info access

经过这个URL,咱们能够得到这个证书的颁发者证书,即中间证书。Windows、IOS、MAC都支持这种证书获取方式,但Android不支持这种方式,因此,若是咱们仅依靠这种方式来得到中间证书,就没法在Android系统上创建可信链接。

除了操做系统支持外,还有一个很重要的因素,就是客户端能够正常访问公网。若是客户端自己在一个封闭的网络环境内,没法访问公网下载中间证书,就会形成失败,没法创建可信链接。

此外,有些CA的中间证书下载地址由于种种缘由被“墙”掉了,也会形成咱们没法得到中间证书,进而没法创建可信连接。

虽然自动下载中间证书的机制如此不靠谱,但在有些应用中,这倒是惟一有效的机制,譬如邮件签名证书,因为咱们发送邮件时,没法携带颁发邮件证书的中间证书,每每只能依靠客户端本身去下载中间证书,一旦这个中间证书的URL没法访问(被“墙”掉)就会形成验证失败。

 服务器推送中间证书

服务器推送中间证书,就是将中间证书,预先部署在服务器上,服务器在发送证书的同时,将中间证书一块儿发给客户端。咱们部署证书,首先就要找到颁发服务器证书的中间证书,能够用中间证书下载工具 。 

若是咱们在服务器上不主动推送中间证书,可能会形成的问题

  • Android手机没法自动下载中间证书,形成验证出错,提示证书不可信,没法创建可信链接。
  • Java客户端没法自动下载中间证书,验证出错,可信链接失败。
  • 内网电脑,在禁止公网的状况下,没法自动下载中间证书,验证出错,可信链接失败。

虽然咱们不部署中间证书,在大多数状况,咱们依然能够创建可信的HTTPS链接,但为了不以上这些状况,咱们必须在服务器上部署中间证书。

因此,为了确保咱们在各类环境下都能创建可信的HTTPS链接,咱们应该尽可能作到如下几点:

一、必须在服务器上部署正确的中间证书,以确保各种浏览器都能得到完整的证书链,完成验证。

二、选择可靠的SSL服务商,有些小的CA机构,由于各类缘由,形成他们的中间证书下载URL被禁止访问,即便咱们在服务器上部署了中间证书,但也可能存在某种不可测的风险,这是咱们应该尽力避免的。

三、中间证书每每按期会更新,因此在证书续费或者从新签发后,须要检查是否更换过中间证书。

相关文章
相关标签/搜索