【发布时间】:2019-04-18 16:31:08
【问题描述】:
在以下用例中,我对 SSL 证书流程的理解是否正确(CA/自签名)。 一般我们生成SSL证书的时候有以下内容 :
- 所有者、域、有效性等详细信息。
- Web 服务器的公钥(用于非对称密钥对 SSL 握手)
- 由 CA 私钥签名的数字签名或在自我签名的情况下,它将是 Web 服务器自己的私钥(希望这种理解是正确的?(Q1))
第一个 Web 浏览器使用自己的公钥获取 SSL 证书。 CA 提供者证书存在时的证书验证:
- 浏览器将拥有 CA 的所有公钥,因此可以验证 数字签名。
- 稍后Web服务器提供的公钥用于启动对称密钥加密。
但是博客也谈到浏览器已经有受信任的根证书并且它可以验证。这是否意味着很多时候浏览器只检查证书内容而没有数字签名验证(Q2)?
现在,在自签名的情况下,Web 服务器将使用自己的私钥来登录证书(而不是 CA 私钥)。在第一次浏览器交互期间,它将发送其证书以及 Web 服务器公钥。所以在这种情况下,我们在证书签名期间使用相同的公钥/私钥对,并共享对称密钥以进行数据加密(Q3)??
现在,博客说我们可以在浏览器上手动导入证书。证书导入也会导入公钥以验证签名是否正确(Q4)? 博客说如果证书存在于受信任的根证书中,则认为它是有效的。这是否意味着浏览器不进行签名验证(Q5)?
有没有人帮助我理解 Q1 到 Q5。我错过了什么吗?
【问题讨论】:
标签: ssl https ssl-certificate