SSL证书相关技巧 -- 为什么有时候访问某些加密网站是不需要证书的?

引入:

这里其实有个悖论,刚才上文说你自己搭建某个https网站(网站A)需要去某些证书颁发机构(网站B)购买证书Ca,也就是说你需要先访问网站B,但是因为涉及到购买过程(肯定有账号,密码,钱之类的敏感信息) ,那么就是说这个网站也肯定是https的,那么这些网站你也需要证书Cb才能安全访问,那么你的证书Cb又哪里来呢?这不死循环了么?


分析:


其实很简单,这里不存在死循环,因为操作系统会默认的吧一些证书添加到自己的证书管理器中。比如在我的机器上,命令行输入certmgr.msc,就打开了证书管理器,然后所有我的操作系统的默认呢带的证书都会被安装到这里:


从这里可以看出,很多提供证书售卖服务的网站,其需要访问的证书文件都是默认被添加到我们操作系统的,比如我们等会做实验看到的VeriSign ,GoDaddy 网站,因为我们通常会向这些网站购买证书,所以这些网站的证书默认会被添加到操作系统的证书管理器中,从而我们可以直接访问。


如下图所示,当我访问goDaddy (一个可以购买SSL证书的站点:其url为 https://www.godaddy.com )  时候,就算这网站我以前从来没访问过(参见左边的信息),也不会导致这个地址栏的锁是红叉,而直接是绿色的。因为操作系统自动安装了这个网站的证书,所以它为我们做了一切。




现在我们来看下浏览器,我们知道浏览器都有证书管理,他们的默认管理的证书列表方式是先从操作系统的默认的证书管理器中导入全部内容,然后再加上该浏览器所特有的一些证书.



比如,对照上面的OS的证书管理器,我们看下IE和Chrome浏览器的证书管理,可以发现他们几乎是一样的。


总结:


1.所有访问https的网站都是需要证书的。

2.对于某些网站,尤其是证书颁发机构的网站,操作系统自动添加了这些网站访问需要的证书到证书管理器中,所以就算用户完全不知道这些网站,他们也能很轻松的利用https访问这些网站,因为这些证书在b被操作系统管理并且已经被关联到受信任的CA了。

3.对于其他网站,则这些网站必须提供证书才能安全访问,如果他们的证书无法被CA验证的话,浏览器就会弹出一些提示(取决于不同的浏览器),来告知终端用户这个网站可能不安全,希望不要发送私密数据。

4.操作系统都有自己的证书管理器,而安装在操作系统中的浏览器默认的导入证书则是操作系统证书管理器的证书列表+特定浏览器自己添加的少许证书。



本文出自 “平行线的凝聚” 博客,请务必保留此出处http://supercharles888.blog.51cto.com/609344/1355859

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。