前言
今天在这里主要总结一下使用SSL的过程中遇到的坑(注意事项)。SSL是什么东西?(请看这里)
我(叫龙君)接触SSL证书已经4年了,算上今年,最开始我认为SSL证书就是拿回来安装上就可以使用的。后来发现其实不然,我们还需要去了解SSL证书信任过程和什么是信任证书链。因为大部分客户都不了解这些,购买了证书后安装使用都会出现"不信任"的问题。下面就是总结常见的5中导致SSL证书不信任的原因。
1.SSL证书不是来自公认的证书颁发机构(CA)
我们但凡了解过SSL证书的朋友都明白,我们自己就可以给自己颁发数字证书(SSL证书、邮件证书、客户端证书、代码证书等),自己签发的证书不需要一分钱。然而自签发的数字证书默认是不受到客户端操作系统信任的,所以他们访问我们的站点的时候就会提示不信任。
另一方面,公认的证书颁发机构的CA证书就是默认内置在我们的操作系统或者浏览器当中的,也就是客户端操作系统默认信任的证书。
所以,我们首先需要购买可信的证书颁发机构颁发的数字证书,这一点很重要。常见的公认数字证书颁发机构有Startcom、Comodo、Geotrust、Globalsign等。
2.数字证书信任链配置错误
我们接触了很久的数字证书,基本很少有颁发机构会使用他们的根证书直接签发客户端证书(End User Certificate), 这可能是出于安全考虑,当然也不排除部分证书颁发机构支持这样做(但是价格很惊人)。他们都选择用自己的二级证书进行颁发客户端证书,比如你购买的EV SSL绿色地址栏证书,签发的证书链大概就如下图:
1
2
3
4
5
6
|
|---Londry Root C
|---Londry EV SSL CA G2 (中级CA)
|---www.yourdomain.com
如果不配置中级CA,操作系统就无法确定SSL证书的真正颁发者是谁。
|
这个时候我们的证书和被受到信任的根证书就存在一个中间证书,这个叫中级证书颁发机构CA。如果操作系统默认只内置了根证书颁发机构,而我们直接安装的是自己的域名证书。这个时候证书链就不完整,就会被标记为受信任。为了解决这个问题,我们需要在服务器配置安装SSL证书的时候也同样要使得我们的证书链完整,才能正常使用。相关的各个平台的证书链配置我们也会在后面的文章给大家专门码字说明。
3.证书的域名匹配程度不完整
多数情况下我们的证书