仅限移动设备上的SSL证书“err_cert_authority_invalid”

时间:2015-01-11 22:35:57

标签: google-chrome ssl certificate ssl-certificate

域:https://www.amz2btc.com

来自SSL实验室的分析:https://www.ssllabs.com/ssltest/analyze.html?d=amz2btc.com

我的所有桌面浏览器都打开了。移动Firefox打开这个很好。只有当我尝试使用移动Chrome时,我才会收到错误:err_cert_authority_invalid

我对SSL知之甚少,所以我无法理解SSL报告或为什么会出现这个错误。如果有人能够ELI5,那将是理想的。 :)

12 个答案:

答案 0 :(得分:28)

我只是在上午处理这件事。问题不在于我丢失了证书。这是我有一个额外的。

我开始使用包含服务器密钥的ssl.conf和我的SSL证书颁发机构提供的三个文件:

#   Server Certificate:
SSLCertificateFile /etc/pki/tls/certs/myserver.cer

#   Server Private Key:
SSLCertificateKeyFile /etc/pki/tls/private/myserver.key

#   Server Certificate Chain:
SSLCertificateChainFile /etc/pki/tls/certs/AddTrustExternalCARoot.pem

#   Certificate Authority (CA):
SSLCACertificateFile /etc/pki/tls/certs/InCommonServerCA.pem

它在台式机上运行良好,但Android上的Chrome给了我err_cert_authority_invalid

以后很多头疼,搜索和糟糕的文档,我发现它是服务器证书链:

SSLCertificateChainFile /etc/pki/tls/certs/AddTrustExternalCARoot.pem

那就是创建一个不完整的第二个证书链。我评论了那条线,留给我

#   Server Certificate:
SSLCertificateFile /etc/pki/tls/certs/myserver.cer

#   Server Private Key:
SSLCertificateKeyFile /etc/pki/tls/private/myserver.key

#   Certificate Authority (CA):
SSLCACertificateFile /etc/pki/tls/certs/InCommonServerCA.pem

现在它再次在Android上运行。这是在Linux上运行Apache 2.2。

答案 1 :(得分:18)

我在通过Parse托管网站并使用NameCheap转售的Comodo SSL证书时遇到了同样的问题。

您将在zip文件夹中收到两个证书文件: www_yourdomain_com.ca束 www_yourdomain_com.crt

您只能将一个文件上传到Parse: Parse SSL Cert Input Box

在终端中使用以下方法组合两个文件:

cat www_yourdomain_com.crt www_yourdomain_com.ca-bundle > www_yourdomain_com_combine.crt

然后上传到Parse。这应该可以解决Android Chrome和Firefox浏览器的问题。您可以通过https://www.sslchecker.com/sslchecker

进行测试来验证其是否有效

答案 2 :(得分:9)

对于那些在IIS服务器上遇到此问题的人。

解释:有时证书带有中间证书的 URL ,而不是实际证书。桌面浏览器可以使用此URL 下载缺少的中间证书。但是较旧的移动浏览器无法做到这一点。所以他们抛出这个警告。

你需要

1)确保服务器提供所有中间证书

2)在IIS中禁用不需要的证书路径 - 在“受信任的根证书颁发机构”下,您需要“禁用所有目的"用于触发下载的证书。

PS。我的同事写了一篇博客文章,其中包含更详细的步骤:https://www.jitbit.com/maxblog/21-errcertauthorityinvalid-on-android-and-iis/

答案 3 :(得分:7)

SSLabs的报告说:

  This server's certificate chain is incomplete. Grade capped to B.
  ....
  Chain Issues                  Incomplete

桌面浏览器通常具有从先前连接缓存的链证书,或者从证书中指定的URL下载它们。移动浏览器和其他应用程序通常不会。

通过包含丢失的证书来修复您的链条,一切都应该是正确的。

答案 4 :(得分:5)

我希望我不会太迟,这个解决方案对我有用,我使用的是COMODO SSL,上述解决方案随着时间的推移似乎无效,我的网站lifetanstic.co.ke

您可以执行以下操作,而不是联系Comodo支持并获取CA捆绑文件:

当您从Comodo获得新的SSL证书(通过邮件)时,他们会附加一个zip文件。您需要解压缩zip文件并在文本编辑器中打开以下文件,如记事本:

AddTrustExternalCARoot.crt
COMODORSAAddTrustCA.crt
COMODORSADomainValidationSecureServerCA.crt

然后复制每个" .crt"的文本。将文本粘贴在"证书颁发机构包(可选)"字段。

之后,只需像往常一样在"证书"中添加SSL证书。字段并点击" Autofil by Certificate"按钮并点击"安装"。

受到这个要点的启发:https://gist.github.com/ipedrazas/6d6c31144636d586dcc3

答案 5 :(得分:4)

我也遇到了链条的问题,并设法使用本指南https://gist.github.com/bradmontgomery/6487319

解决了问题

答案 6 :(得分:4)

如果您像我一样使用AWS和CloudFront,请按照以下方法解决问题。它与其他人分享的内容类似,除非您不使用域名的crt文件,只是comodo通过电子邮件发送给您的。

cat COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt AddTrustExternalCARoot.crt > ssl-bundle.crt

这对我有用,我的网站不再在android中显示对chrome的ssl警告。

答案 7 :(得分:3)

我用这个命令解决了我的问题:

cat __mydomain_com.crt __mydomain_com.ca-bundle > __mydomain_com_combine.crt

之后:

cat __mydomain_com_combine.crt COMODORSADomainValidationSecureServerCA.crt 
COMODORSAAddTrustCA.crt AddTrustExternalCARoot.crt > mydomain.pem

在我的域名nginx .conf中,我放入了服务器443:

ssl_certificate          ssl/mydomain.pem;
ssl_certificate_key      ssl/mydomain.private.key;

我不会忘记重启你的“Nginx”

service nginx restart

答案 8 :(得分:3)

检查证书链中是否存在问题的一个不错的方法是使用此网站:

https://www.digicert.com/help/

插入您的测试网址,它会告诉您可能出错的地方。我们遇到与您相同症状的问题,我们的问题被诊断为由于中间证书。

  

SSL证书不受信任

     

证书未由受信任的机构签名(检查   Mozilla的根店)。如果您从受信任的人那里购买了证书   权限,您可能只需要安装一个或多个中级   证书。请联系您的证书提供商以获取帮助   这适用于您的服务器平台。

答案 9 :(得分:0)

我遇到了同样的问题,但是 Mike A 做出的回应帮助我解决了问题: 我有一个我的证书,一个中间证书(Gandi),另一个中间件(UserTrustRSA),最后是RootCA证书(AddTrust)。

首先,我使用Gandi + UserTrustRSA + AddTrust创建了一个链文件,并使用 SSLCertificateChainFile 指定它。但它没有奏效。

所以我尝试了MikeA答案,只需将AddTruct证书放入一个文件中并使用 SSLCACertificateFile 指定它并删除 SSLCertificateChainFile 。但它没有用。

所以我最终制作了一个链文件,其中只有 SSLCertificateChainFile 指定的 Gandi + UserTrustRSA ,而另一个文件只有 RootCA 指定< strong> SSLCACertificateFile 并且有效。

#   Server Certificate:
SSLCertificateFile /etc/ssl/apache/myserver.cer

#   Server Private Key:
SSLCertificateKeyFile /etc/ssl/apache/myserver.key

#   Server Certificate Chain:
SSLCertificateChainFile /etc/ssl/apache/Gandi+UserTrustRSA.pem

#   Certificate Authority (CA):
SSLCACertificateFile /etc/ssl/apache/AddTrust.pem

当你阅读时似乎合乎逻辑,但希望它有所帮助。

答案 10 :(得分:0)

我想你应该在权威人士加速时安装CA证书表格:

ssl_trusted_certificate ssl / SSL_CA_Bundle.pem;

答案 11 :(得分:-13)

对版本44.0.2403.155 dev-m

执行以下操作

隐私权 - &gt;内容设置 - &gt;不允许任何网站运行JavaScript

解决问题