浏览器验证网站数字证书的流程(HTTPS协议)

浏览器验证网站数字证书的流程(HTTPS协议),第1张

CA下发给网站的证书都是一个证书链,也就是一层一层的证书,从根证书开始,到下级CA,一层一层,最后一层就是网站证书。

浏览器收到服务器发送的证书后,需要验证其真实性。而证书的签名是通过签名 算法 和 上级CA 的私钥生成的,并非很多文章里简单说的靠CA私钥生成。浏览器需要用上级CA的公钥才能解密签名,并与生成的指纹对比,那么问题来了,这个上级CA的公钥从哪来呢?

答案是此公钥来自于证书链该层的上级CA的证书明文内。单个X509v3证书由以下部分组成:

X.509v3证书由三部分组成:

tbsCertificate (to be signed certificate),待签名证书。

SignatureAlgorithm,签名算法。

SignatureValue,签名值。

tbsCertificate又包含10项内容,在HTTPS握手过程中以明文方式传输:

Version Number,版本号。

Serial Number,序列号。

Signature Algorithm ID,签名算法ID。

Issuer Name,发行者。

Validity period,有效时间。

Subject name ,证书主体名称。

Subject Public Key Info ,证书主体公钥信息,包含公钥算法和公钥值。

Issuer Unique Identifier (optional),发行商唯一ID。

Subject Unique Identifier (optional),主体唯一ID。

Extensions (optional),扩展。

证书链由多个证书一层一层组成的,除了最底层的网站证书的公钥是给用户加密报文外,其他层证书中的公钥均用于解密底层的证书指纹签名。最高层的根证书是 自签名 的,也就是自己颁发给自己,所以它的公钥不仅用来解密下层的签名,也用来给自己的签名解密。

验证证书是否真实的任务完成了,那么证书是否可靠如何验证呢?一句话,只要根证书可靠,整个证书链就可靠,而根证书是否可靠要看这个根证书是否在 操作系统 或浏览器内置的可信根证书内,在的话就可信。

现在,当客户端出现并请求与您的站点建立安全连接时(如在 HTTPS 的情况下连接到端口 443 所示)。您的服务器发送它的公共(非私有)证书并开始安全握手。一种这样的握手称为Diffie-Hellman 密钥交换。

浏览器如何验证SSL证书

在浏览器的菜单中点击“工具 /Internet选项”,选择“内容”标签,点击“证书”按钮,然后就可以看到IE浏览器已经信任了许多“中级证书颁发机构”和“受信任的根证书颁发机 构”。当我们在访问该网站时,浏览器就会自动下载该网站的SSL证书,并对证书的安全性进行检查。

由于证书是分等级的,网站拥有者可能从根证书颁发机构领到证书,也可能从根证书的下一级(如某个国家的认证中心,或者是某个省发出的证书)领到证书。假设我们正在访问某个使用了SSL证书的网站,IE浏览器就会收到了一个SSL证书,如果这个证书是由根证书颁发机构签发的,IE浏览器就会按照下面的步骤来 检查:浏览器使用内置的根证书中的公钥来对收到的证书进行认证,如果一致,就表示该安全证书是由可信任的颁证机构签发的,这个网站就是安全可靠的如果该SSL证书不是根服务器签发的,浏览器就会自动检查上一级的发证机构,直到找到相应的根证书颁发机构,如果该根证书颁发机构是可信的,这个网站的SSL证 书也是可信的。

更多详细介绍:http://freessl.wosign.com/917-2.html


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/403140.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-20
下一篇2023-05-20

发表评论

登录后才能评论

评论列表(0条)

    保存