引入:
前面文章说到,操作系统会吧一些网站需要的SSL证书添加到其证书管理器中,但是世界上毕竟网站太多了,操作系统不可能一一添加证书到列表,而且这种网站很多,比如下面例子中的中国铁道部订票网站,这时候,浏览器的行为如何呢?它说明什么问题呢?我们又应该如何解决呢?
分析:
比如我们访问中国铁道部订票网站https://kyfw.12306.cn/otn/(这个很常用,因为刚好现在过年期间,这个网站应该非常红火)
它会在地址栏显示一个带红叉的锁,然后弹出一个提示说这个网站的安全证书不受到信任:
如果点击带红叉的“锁”图标,则会提示
相信这个很司空见惯了,它属于访问HTTPS常见到的现象,它的作用是告诉访问用户:这个网站服务器的证书不受到信任,也就是这个证书没有办法通过CA来提供验证。当然用户你一定要继续访问也可以,只是我已经友情提醒过你了,所以你的所有私密数据不受到我当前浏览器(比如Chrome)的保护,出了问题我一概不负责。
所以用户肯定会去想,到底是这个证书本身有问题呢?还是证书没问题,只是没有得到CA的认可?
于是用户会去点击这个证书的详细信息:
显然,颁发证书的组织是“铁路客服中心”,这个广告经常做,所以错不了。于是我们可以推断,我们浏览器访问https页面受阻是因为这个证书没有被CA认可,而不是证书本身的问题。
于是,我们就需要安装相应的根证书到浏览器中(准确是安装到操作系统中),这样操作系统就会自动信任这个CA颁发的证书。我们去铁道部网站的首页下载这个证书文件:
然后通过添加这个证书到 “受信任的根证书颁发机构”来启用对这个根证书的信任。
我们双击下载后的铁道部根证书文件,选择“安装证书”按钮:
然后会弹出 “安装证书”向导,我们将这个根证书添加到“受信任的证书颁发机构”:
点击“确认”后,它会弹出一个安全性警告,目的是免责,它让用户最终决定这个证书的合法性,而不是操作系统自带的默认合法的,所以用户确定了合法后,操作系统就为该证书的使用开放了“绿灯”:
然后点击“是”按钮,则该根证书安装成功。我们回到操作系统的证书管理器,显然,这个SRCA证书被添加进去了:
我们再次访问12306网站,会发现锁是绿色的而不是带红叉的了,这就表明浏览器和12306铁道部网站的安全链路已经没问题,客户可以放心的通过浏览器来传输私密敏感数据到12306了。
总结:
1.多数网站的访问,如果是https的,那么操作系统默认会通过控制浏览器来阻止对那个网站的直接访问从而保护用户发送敏感数据岛不合法网站。
2.如果这些网站是合法的正规的网站,那么当访问浏览器访问这些网站时候会探知网站使用的证书信息。
3.这些证书必须是合法的并且被关联到受信任的CA中,一般用户可以去查看证书相关信息,例如签发者是谁,是否过期。
4.一旦用户觉得此证书是可以信任的,那么他们就可以设置操作系统来放开对相应网站的限制。一般网站都会提供根证书,用户可以通过操作系统的证书管理器把网站的证书添加到“受信任的根证书颁发机构”,当然因为这个证书是用户自己导入的,而不是操作系统自带的,所以操作系统会有一个提示说明来免责。
5.一旦添加根证书到“受信任的根证书颁发机构”成功,那么这个根证书颁发机构颁发的证书就会被操作系统所信任,操作系统就可以允许访问了,并且用户用现在的SSL信道传送私密数据不会受到影响。