3

我有一个应用程序在 Chrome for Android 上收到 SSL 警告,结果我需要从 RapidSSL 添加我的 CA Bundle。我看不到使用 Laravel Forge 的方法。我怎样才能做到这一点?

我的 nginx 配置是由 Laravel Forge 自动生成的,如下所示:

# FORGE SSL (DO NOT REMOVE!)
ssl on;
ssl_certificate /etc/nginx/ssl/mydomain.com/1646/server.crt;
ssl_certificate_key /etc/nginx/ssl/mydomain.com/1646/server.key;
4

2 回答 2

7

之前的状态:不受信任的页面

我对来自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 文件中添加了证书的内容:

  1. www_timtimer_at.crt
  2. COMODORSAAddTrustCA.crt
  3. COMODORSADomainValidationSecureServerCA.crt
  4. 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(证书链中的自签名证书)。

于 2014-10-18T09:35:25.570 回答
4

好的,所以我通过执行以下操作解决了这个问题:

  1. 下载 RapidSSL CA 包:

https://knowledge.rapidssl.com/support/ssl-certificate-support/index?page=content&id=AR1549

  1. 将其粘贴到我的证书下方的文本文件中。

https://www.digicert.com/ssl-support/pem-ssl-creation.htm

  1. 当它要求我的证书时,将三个证书合二为一地粘贴到 Laravel forge 中。

它奏效了!

于 2014-09-11T15:03:04.543 回答