好的,我最近将我的Comodo SSL证书从我以前的Bluehost帐户转移到我的新机架式云服务器。 (LAMP堆栈)
基本上我只是复制粘贴服务器证书和密钥并检查以确保它已正确安装它。现在我遇到了一些问题,偶尔我会听到人们发现他们正在收到“不受信任的连接错误”,而其他人根本没有收到此错误。
最近有人向我发送了他们错误的屏幕截图,并说:此证书不受信任,因为没有提供发行人链。
他们注意到的浏览器是safari,因此我在safari中清除了所有历史数据并打开了网站,但我没有看到错误。
有没有人知道如何解决这样的问题?谢谢!
当我输入openssl s_client时......我得到:
Certificate chain
0 s:/OU=Domain Control Validated/OU=Hosted by BlueHost.Com, INC/OU=PositiveSSL/CN=www.sitename.com
i:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=PositiveSSL CA 2
1 s:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root
i:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root
2 s:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=PositiveSSL CA 2
i:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root
答案 0 :(得分:3)
您很可能缺少“链”或中间证书(有些人可能在浏览器中有,有些人没有)。
解决此问题的最简单方法是查看证书上的颁发者详细信息;并找到该证书。然后查看该证书的颁发者详细信息 - 直到您点击“root” - 这是一个自签名证书(主题与发行人相同)。
一旦你得到它们,所有它们都会在一个文件中连接它们并指向SSLCertificateChainFile。
你的httpd.conf看起来像
SSLEngine on
SSLCertificateKeyFile .../your-key.key
SSLCertificateFile .../your-cert.pem
SSLCertificateChainFile .../ca-bundle.pem
某些CA在颁发证书时将此文件作为“ca-bundle”(https://support.comodo.com/index.php?_m=knowledgebase&_a=viewarticle&kbarticleid=1203)提供。大部分都没有。
所以在这种情况下你需要创建它。做
openssl x509 -in <your cert.pem> -noout -issuer
将为您提供确切的发行者字符串。谷歌搜索通常会为您提供所需的中间证书(通常在您的CA的支持站点)。一旦你有了 - 重复上面并继续前进,直到你到达最后一个 - 发行人与主题相同。
完成后 - 重新启动网络服务器,应该是它。
如果你想验证你有整个链 - 那么使用命令
openssl s_client -connect <your domain name>:443
并检查输出是否以:
开头0 s:/C=GB/OU=Domain Control Validated/CN=<your domain>
i:/C=BE/O=Comodo/CN=Comodo foobar
....
3 s:/C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA
i:/C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA
并且至少有一个条目(上例中为3),你有一个最终的根; S与i相同。如果您只看到一个条目
0 s:/C=GB/OU=Domain Control Validated/CN=<your domain>
i:/C=BE/O=Comodo/CN=Comodo foobar
仅此而已 - 然后再次检查您的链 - 并确保它包含与您的发布者相同的主题的证书(在上面的例子中'/ C = BE / O = Comodo / CN = Comodo foobar')。
您可以通过使用
解析捆绑包中的每个blob来检查这一点 openssl x509 -noout -in file.pem -subject -issuer
其中file.pem是SSLCertificateChainFile文件的一个块。
警告:上面是一个轻微的简化 - 一些链可能有多个根/交叉签名。在这种情况下,它会变得更复杂 - 但在上面的例子中。