之前的状态:不受信任的页面
我对来自https://cheapsslsecurity.com/的 comodo 证书有同样的问题。起初,我只通过 laravel forge 网络界面(www_timtimer_at.crt)安装了特定于域的证书,这导致了一个不受信任的页面。
偶然发现@Citizen 的答案和Nginx 不提供中间证书的帖子帮助我修复了它。另请参阅此帖子以获取调试说明。
如何解决问题
SSL-状态
用于openssl s_client -connect www.timtimer.at:443
检查证书链。(因为我使用的是 Windows,所以我只是使用 git bash 来使用这个命令)。它应该是一个真正的链,如下所示(s=subject,i=issuer)。所以你总是有一个发行人的主题。该发行人应该是下一个由另一个机构发行的主体,依此类推。最后一个主题是它自己的发行者。
起初我的证书链如下所示:
证书链
0 s:/OU=Domain Control Validated/OU=PositiveSSL/CN=www.timtimer.at
i:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Domain验证安全服务器 CA
验证返回码为:21(无法验证第一个证书)。
解决方案
检查您的服务器配置文件(我使用 Laravel forge 和 nginx,所以我的文件将是/etc/nginx/sites-available/default以获取您正在使用的证书的位置。请注意以下部分
# FORGE SSL (DO NOT REMOVE!)
ssl_certificate /etc/nginx/ssl/default/2658/server.crt;
ssl_certificate_key /etc/nginx/ssl/default/2658/server.key;
因此,在我的情况下,证书存储在/etc/nginx/ssl/default/2658/server.crt中。现在编辑此文件并确保将所有需要的证书放在那里。我按以下顺序从 zip 文件中添加了证书的内容:
- www_timtimer_at.crt
- COMODORSAAddTrustCA.crt
- COMODORSADomainValidationSecureServerCA.crt
- AddTrustExternalCARoot.crt
该文件应如下所示
-----BEGIN CERTIFICATE-----
... (www_timtimer_at.crt)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
... (COMODORSAAddTrustCA.crt)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
... (COMODORSADomainValidationSecureServerCA.crt)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
... (AddTrustExternalCARoot.crt)
-----END CERTIFICATE-----
/etc/init.d/nginx restart
一切看起来都很好。
执行后我收到以下证书链openssl s_client -connect www.timtimer.at:443
:
证书链
0 s:/OU=Domain Control Validated/OU=PositiveSSL/CN=www.timtimer.at
i:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Domain验证安全服务器 CA
1 s:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA 域验证安全服务器 CA
i:/C=GB/ST=Greater Manchester/L= Salford/O=COMODO CA Limited/CN=COMODO RSA Certification Authority
2 s:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Certification Authority
i:/C=SE/ O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root
3 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
验证返回码为:19(证书链中的自签名证书)。