安全地验证ssl证书需要执行哪一系列步骤?我(非常有限)的理解是,当您访问https站点时,服务器将证书发送到客户端(浏览器),浏览器从该证书中获取证书的颁发者信息,然后使用该信息联系颁发者,并以某种方式比较证书的有效性。
发布于 2008-10-09 17:28:37
这里有一个非常简单的解释:
请注意,证书颁发机构(CA)对于防止中间人攻击至关重要。但是,即使是未签名的证书也会阻止其他人被动地监听您的加密流量,因为他们无法访问您的共享对称密钥。
发布于 2009-02-05 02:16:54
值得注意的是,除了购买证书(如上所述)外,您还可以免费创建自己的证书;这称为“自签名证书”。自签名证书和购买的证书之间的区别很简单:购买的证书是由您的浏览器已经知道的证书颁发机构签名的。换句话说,您的浏览器可以轻松地验证购买的证书的真实性。
不幸的是,这导致了一种常见的误解,即自签名证书天生就没有GoDaddy和Verisign等商业CA销售的证书那么安全,并且如果使用它们,您必须忍受浏览器警告/异常;这是不正确的。
如果您安全地分发自签名证书(或CA证书,如bobince建议的那样),并将其安装在将使用您的站点的浏览器中,则它与购买的证书一样安全,并且不容易受到中间人攻击和证书伪造。显然,这意味着只有少数人需要安全地访问您的站点(例如,内部应用程序、个人博客等)时,这才是可行的。
发布于 2016-05-31 00:06:07
你说过的
浏览器从该证书获取证书的颁发者信息,然后使用该信息联系颁发者,并以某种方式比较证书的有效性。
客户端不需要与发行者进行核对,因为有两件事:
请注意,2。没有1是不能完成的。
这在我不久前写的这篇big diagram中得到了更好的解释
(跳到“什么是签名?”在底部)
https://stackoverflow.com/questions/188266
复制相似问题