5大导致”SSL证书不被信任”的原因

前言

今天在这里主要总结一下使用SSL的过程中遇到的坑(注意事项)。SSL是什么东西?(请看这里)

我(叫龙君)接触SSL证书已经4年了,算上今年,最开始我认为SSL证书就是拿回来安装上就可以使用的。后来发现其实不然,我们还需要去了解SSL证书信任过程和什么是信任证书链。因为大部分客户都不了解这些,购买了证书后安装使用都会出现"不信任"的问题。下面就是总结常见的5中导致SSL证书不信任的原因。

1.SSL证书不是来自公认的证书颁发机构(CA)

我们但凡了解过SSL证书的朋友都明白,我们自己就可以给自己颁发数字证书(SSL证书、邮件证书、客户端证书、代码证书等),自己签发的证书不需要一分钱。然而自签发的数字证书默认是不受到客户端操作系统信任的,所以他们访问我们的站点的时候就会提示不信任。

另一方面,公认的证书颁发机构的CA证书就是默认内置在我们的操作系统或者浏览器当中的,也就是客户端操作系统默认信任的证书。

所以,我们首先需要购买可信的证书颁发机构颁发的数字证书,这一点很重要。常见的公认数字证书颁发机构有Startcom、Comodo、Geotrust、Globalsign等。

2.数字证书信任链配置错误

我们接触了很久的数字证书,基本很少有颁发机构会使用他们的根证书直接签发客户端证书(End User Certificate), 这可能是出于安全考虑,当然也不排除部分证书颁发机构支持这样做(但是价格很惊人)。他们都选择用自己的二级证书进行颁发客户端证书,比如你购买的EV SSL绿色地址栏证书,签发的证书链大概就如下图:

这个时候我们的证书和被受到信任的根证书就存在一个中间证书,这个叫中级证书颁发机构CA。如果操作系统默认只内置了根证书颁发机构,而我们直接安装的是自己的域名证书。这个时候证书链就不完整,就会被标记为受信任。为了解决这个问题,我们需要在服务器配置安装SSL证书的时候也同样要使得我们的证书链完整,才能正常使用。相关的各个平台的证书链配置我们也会在后面的文章给大家专门码字说明。

3.证书的域名匹配程度不完整

多数情况下我们的证书颁发机构都会为我们的域名做完整的匹配,但有些时候某些证书颁发机构可能会疏忽,我就遇见过。当我们为自己的域名比如londry.cn申请数字证书的时候,我们的CSR当中仅定义了londry.cn这一个顶级域名,并未添加更多域名DNS(可叫证书备用名称)记录。那么当你证书颁发的时候访问www.londry.cn就不会受到信任,会提示你该证书不是这个域名的。

这个时候你应该联系证书颁发机构或证书提供商进行重新签发并包含该域名,默认情况下的单域名证书是同时包含www.londry.cn和londry.cn的。

4.证书已经过了有效期

如果你的证书不是新买的,你应该注意你的数字证书已经过了有效期或这靠近有效期截止日期,你应该联系提供商进行续费。另外如果你的证书来自某些不正常的渠道,你也应该要确定一下你的证书是否已经被吊销,任何情况你都应该立即联系你的证书服务提供商。

5.客户端不支持SNI协议

这种事情只会发生在客户使用的操作系统是Windows XP SP2以下,Android4.2以下的情况,因为这些操作系统实在是太早了。当时系统厂商并未有支持这个SNI协议

SNI协议就是让多个支持SSL证书的域名共享同一个独立IP地址的技术,现在已经被几乎所有主流操作系统和浏览器支持了。在很多年以前,SSL证书是需要绑定到独立IP地址使用的,由于IPv4地址池的逐渐不够分配,SNI技术应运而生了。

  • 版权声明: 本文源自互联网, 于11个月前,由整理发表,共 1490字。
  • 原文链接:点此查看原文

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: