首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何验证ssl证书?

如何验证ssl证书?
EN

Stack Overflow用户
提问于 2008-10-10 01:16:30
回答 6查看 133K关注 0票数 261

安全地验证ssl证书需要执行哪一系列步骤?我(非常有限)的理解是,当您访问https站点时,服务器将证书发送到客户端(浏览器),浏览器从该证书中获取证书的颁发者信息,然后使用该信息联系颁发者,并以某种方式比较证书的有效性。

  • 这到底是怎么做的?
  • 如何使其免受中间人攻击?
  • 防止一些随机的人设置自己的验证服务以用于中间人攻击,因此一切“看起来”都是安全的?
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2008-10-09 17:28:37

这里有一个非常简单的解释:

  1. 您的web浏览器将下载web服务器的证书,其中包含web服务器的公钥。此证书使用受信任证书的私钥签名,authority.
  2. Your web浏览器随附所有主要证书颁发机构的公钥。它使用此公钥来验证web服务器的证书是否确实由受信任的证书颁发机构签署。
  3. 证书包含web服务器的域名和/或ip地址。您的web浏览器与证书颁发机构确认证书中列出的地址就是它打开的HTTP浏览器生成的共享对称密钥,该对称密钥将用于加密此连接上的connection.
  4. Your流量;这比使用公钥/私钥加密所有内容要高效得多。浏览器使用web服务器的公钥对对称密钥进行加密,然后将其发回,从而确保只有web服务器可以对其进行解密,因为只有web服务器具有其私钥。

请注意,证书颁发机构(CA)对于防止中间人攻击至关重要。但是,即使是未签名的证书也会阻止其他人被动地监听您的加密流量,因为他们无法访问您的共享对称密钥。

票数 357
EN

Stack Overflow用户

发布于 2009-02-05 02:16:54

值得注意的是,除了购买证书(如上所述)外,您还可以免费创建自己的证书;这称为“自签名证书”。自签名证书和购买的证书之间的区别很简单:购买的证书是由您的浏览器已经知道的证书颁发机构签名的。换句话说,您的浏览器可以轻松地验证购买的证书的真实性。

不幸的是,这导致了一种常见的误解,即自签名证书天生就没有GoDaddy和Verisign等商业CA销售的证书那么安全,并且如果使用它们,您必须忍受浏览器警告/异常;这是不正确的

如果您安全地分发自签名证书(或CA证书,如bobince建议的那样),并将其安装在将使用您的站点的浏览器中,则它与购买的证书一样安全,并且不容易受到中间人攻击和证书伪造。显然,这意味着只有少数人需要安全地访问您的站点(例如,内部应用程序、个人博客等)时,这才是可行的。

票数 68
EN

Stack Overflow用户

发布于 2016-05-31 00:06:07

你说过的

浏览器从该证书获取证书的颁发者信息,然后使用该信息联系颁发者,并以某种方式比较证书的有效性。

客户端不需要与发行者进行核对,因为有两件事:

  1. 所有浏览器都预先安装了所有主要can公钥的列表
  2. 证书已签名,该签名本身就足以证明证书是有效的,因为客户端可以自己确保该证书是可信的,而无需联系颁发者的服务器。这就是非对称加密的美妙之处。

请注意,2。没有1是不能完成的。

这在我不久前写的这篇big diagram中得到了更好的解释

(跳到“什么是签名?”在底部)

票数 56
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/188266

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档