关键词:https 证书可信保证
在 HTTPS 中,保证证书是可信任的主要通过以下几个方面实现:
一、证书颁发机构(CA)的信任体系
-
根证书的信任:
- 操作系统和浏览器内置了一些受信任的根证书颁发机构(Root CA)的证书。这些根证书是整个信任体系的基础。
- 当浏览器接收到一个服务器的 SSL/TLS 证书时,它会沿着证书链向上追溯,直到找到一个受信任的根证书。如果证书链中的所有证书都有效,并且最终可以追溯到一个受信任的根证书,那么这个服务器证书就被认为是可信任的。
-
中间证书的验证:
- 通常,服务器证书不是由根证书颁发机构直接颁发的,而是由中间证书颁发机构(Intermediate CA)颁发的。中间证书颁发机构的证书又由根证书颁发机构颁发。
- 浏览器在验证服务器证书时,会同时验证证书链中的中间证书。它会检查中间证书的有效性、签名是否正确以及是否在有效期内等。
二、证书的验证过程
-
证书的完整性检查:
- 浏览器会检查服务器证书的数字签名,以确保证书在传输过程中没有被篡改。证书的数字签名是使用证书颁发机构的私钥生成的,浏览器可以使用证书颁发机构的公钥来验证签名的有效性。
- 如果签名验证失败,说明证书可能被篡改,浏览器会显示警告信息,并且可能拒绝建立安全连接。
-
证书的有效期检查:
- 浏览器会检查服务器证书的有效期,确保证书在当前时间是有效的。如果证书已过期或尚未生效,浏览器会显示警告信息,并且可能拒绝建立安全连接。
-
域名匹配检查:
- 浏览器会检查服务器证书中的域名与用户访问的域名是否匹配。如果证书中的域名与访问的域名不匹配,浏览器会显示警告信息,并且可能拒绝建立安全连接。
- 例如,如果用户访问“example.com”,但服务器证书是为“another-example.com”颁发的,那么浏览器会认为证书不可信。
三、证书吊销检查
-
证书吊销列表(CRL):
- 证书颁发机构可以吊销已经颁发的证书,例如当证书的私钥被泄露或者证书的所有者发生变化时。为了检查证书是否被吊销,浏览器可以查询证书颁发机构发布的证书吊销列表(CRL)。
- CRL 是一个包含已吊销证书序列号的列表,浏览器可以下载这个列表,并检查服务器证书的序列号是否在列表中。如果在列表中,说明证书已被吊销,浏览器会显示警告信息,并且可能拒绝建立安全连接。
-
在线证书状态协议(OCSP):
- 除了 CRL,浏览器还可以使用在线证书状态协议(OCSP)来实时查询服务器证书的状态。OCSP 允许浏览器向证书颁发机构的服务器发送一个请求,询问服务器证书是否有效。
- 证书颁发机构的服务器会返回一个响应,指示证书的状态(有效、吊销或未知)。浏览器可以根据这个响应来决定是否信任服务器证书。