在安装和部署SSL证书时,我们常常会遇到需要一同安装中间证书的情况。那么,中间证书究竟是什么呢?为什么它在SSL证书的安装过程中如此重要呢?

一、中间证书的定义

中间证书,也被称为中间CA(中间证书颁发机构),与根证书颁发机构相对应。为了确定证书的可信度,必须确保证书的颁发机构在设备的可信CA列表中。如果证书不是由可信CA签发,客户端会检查颁发该CA证书的上层CA证书是否为可信CA,并重复这个步骤,直到找到可信CA(允许建立可信连接)或确定没有可信CA(提示错误)。

每个证书都包含“使用者”和“颁发者”字段。中间CA在这两个字段中显示不同的信息,指示设备如何获取下一个CA证书,以构建信任链。根证书是自签名证书,“使用者”和“颁发者”相同,不会进一步向下检查。如果根CA不在可信CA列表中,则不允许建立可信连接并提示错误。

例如,服务器证书domain.com由中间CA签发,而中间CA的颁发者RootCA在Web浏览器的可信CA列表中,证书的信任链如下:

证书 1 - 使用者:domain.com;颁发者:IntermediaCA

证书 2 - 使用者:IntermediaCA;颁发者:RootCA

证书 3 - 使用者:RootCA;颁发者:RootCA

当Web浏览器验证到证书 3(RootCA)时,发现是可信CA,完成验证并允许建立可信连接。在某些情况下,如果中间CA也在可信CA列表中,则可以直接完成验证并建立可信连接。

二、中间证书的必要性

1.保护根证书

根证书通常要求离线保存,以防止泄露带来极大的安全问题。直接用根证书在线签发证书是不被允许的,因此需要中间证书来进行证书的签发,从而保护根证书的安全。

2.区分不同产品类型

针对不同安全级别的证书,如DV、OV、EV等,CA会采用不同的根证书,这样既便于区分,又能在出现问题时进行区别处理,降低影响。中间CA证书一般支持在线签发证书。

3.交叉验证

为了获得更好的兼容性,支持一些古老的浏览器,有些根证书本身也会被另一个很古老的根证书签名。根据浏览器版本的不同,可能会看到三层或四层的证书链结构。如果看到四层证书链结构,说明浏览器版本很老,只能通过最早的根证书来识别。

三、获取中间证书的方式

1.客户端自动下载中间证书

标准证书包含颁发者名称和颁发者机构访问信息(Authority Info Access),其中有颁发者CA证书的下载地址。通过这个 URL,客户端可以获得中间证书。Windows、IOS、MAC都支持这种证书获取方式,但Android不支持。此外,客户端自动下载中间证书还存在一些问题,如客户端在封闭网络环境内无法访问公网下载中间证书、某些CA的中间证书下载地址被“墙”等。在邮件签名证书的应用中,由于发送邮件时无法携带颁发邮件证书的中间证书,往往只能依靠客户端自己去下载中间证书,一旦中间证书的URL无法访问,就会造成验证失败。

2.服务器推送中间证书

将中间证书预先部署在服务器上,服务器在发送证书的同时将中间证书一起发给客户端。部署证书时,首先要找到颁发服务器证书的中间证书,可以使用中间证书下载工具。如果服务器上不主动推送中间证书,可能会导致Android手机、Java客户端以及内网电脑在禁止公网的情况下无法建立可信连接。

虽然在大多数情况下,不部署中间证书也能建立可信的HTTPS连接,但为了避免上述问题,我们必须在服务器上部署中间证书。

四、确保可信连接的建议

为了确保在各种环境下都能建立可信的HTTPS连接,我们应该做到以下几点:

1.在服务器上部署正确的中间证书,确保各类浏览器都能获得完整的证书链,完成验证。

2.选择可靠的SSL服务商,避免因小CA机构的中间证书下载URL被禁止访问而带来风险。

3.注意中间证书的更新,在证书续费或重新签发后,检查是否更换过中间证书。

总之,中间证书在SSL证书安装和部署中起着至关重要的作用。了解中间证书的定义、必要性以及获取方式,有助于我们更好地保障网络通信的安全。