【问题标题】:SSL cert "err_cert_authority_invalid" on mobile chrome only仅在移动 chrome 上的 SSL 证书“err_cert_authority_invalid”
【发布时间】:2015-03-09 16:21:00
【问题描述】:

域名:https://www.amz2btc.com

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

我所有的桌面浏览器都可以正常打开。移动火狐打开这个很好。只有当我尝试使用移动 Chrome 时,我才收到错误消息:err_cert_authority_invalid

我对 SSL 知之甚少,因此我无法真正理解 SSL 报告或为什么会出现此错误。如果有人可以 ELI5,那将是理想的。 :)

【问题讨论】:

  • 我现在也遇到了这个问题。几周前它工作了,但现在 android chrome 得到了另一个。每个其他浏览器都可以正常工作。与我不同的是,我的网站托管在 AWS S3 和 CloudFront 中。我在云端安装了证书。该配置的任何指南、提示和资源?

标签: google-chrome ssl certificate ssl-certificate


【解决方案1】:

我刚刚花了一个上午处理这个问题。问题不在于我缺少证书。那是我有一个额外的。

我开始使用我的 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 上运行了。这是在运行 Apache 2.2 的 Linux 上。

【讨论】:

  • 在 Apache 2.4.7 上工作(测试于 23/06)
【解决方案2】:

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

您将在一个 zip 文件夹中收到两个证书文件: www_yourdomain_com.ca-bundle 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 进行测试来验证它是否有效

【讨论】:

    【解决方案3】:

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

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

    你需要

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

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

    附言。我的同事写了一篇博文,里面有更详细的步骤:https://www.jitbit.com/maxblog/21-errcertauthorityinvalid-on-android-and-iis/

    【讨论】:

    • 为我工作。 COMODO RSA 证书颁发机构是我的问题 - 如您的链接中所述。
    【解决方案4】:

    SSLabs 的报告说:

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

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

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

    【讨论】:

    • 冒着听起来完全无能的风险(你知道,我可能是),我该怎么做呢?我必须按照分步指南在 WHM 中安装我自己的证书……我对此几乎一无所知。
    • 我对WHM一无所知,但是证书的卖家通常会提供需要哪些中间证书(取决于卖家)以及如何在常用软件中安装它们的文档。所以你最好看看你是从哪里得到证书的。
    • 我的链条也不完整。就我而言,它是通过在我的 apache 2.4.7 配置中指定 SSLCertificateChainFile 来解决的。 Apache 2.4.8 不再需要此指令:httpd.apache.org/docs/current/mod/…
    【解决方案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

    【讨论】:

    • 我对 COMODO 也有同样的问题,但在我的情况下,修复是 concat mydomain.crt COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt > final-file.crt(按此顺序)并且没有 AddTrustExternalCARoot.crt
    【解决方案6】:

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

    【讨论】:

      【解决方案7】:

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

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

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

      【讨论】:

      • 您必须在此命令中也包含您自己的 .crt...我花了一两分钟才意识到这一点
      【解决方案8】:

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

      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
      

      【讨论】:

        【解决方案9】:

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

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

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

        SSL 证书不受信任

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

        【讨论】:

          【解决方案10】:

          我遇到了同样的问题,但 Mike A 的回复帮助我弄清楚了: 我有一个我的证书、一个中间证书 (Gandi)、另一个中间证书 (UserTrustRSA),最后是 RootCA 证书 (AddTrust)。

          首先我用 Gandi+UserTrustRSA+AddTrust 制作了一个链文件,并用 SSLCertificateChainFile 指定它。但它没有用。

          所以我通过将 AddTruct 证书放入一个文件并使用 SSLCACertificateFile 指定它并删除 SSLCertificateChainFile 来尝试 MikeA 答案。但它没有奏效。

          所以最后我制作了一个链文件,其中只有 Gandi+UserTrustRSASSLCertificateChainFile 指定,另一个文件只有 RootCA 由 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
          

          阅读时似乎合乎逻辑,但希望对您有所帮助。

          【讨论】:

            【解决方案11】:

            我猜你应该安装 CA 证书表格一,如果授权中心:

            ssl_trusted_certificate ssl/SSL_CA_Bundle.pem;

            【讨论】:

              【解决方案12】:

              只需对版本 44.0.2403.155 dev-m 执行以下操作

              隐私 -->内容设置 -->不允许任何网站运行 JavaScript

              问题解决

              【讨论】:

                猜你喜欢
                • 2016-01-31
                • 2016-08-17
                • 2019-08-21
                • 2018-03-03
                • 2012-12-01
                • 2019-12-22
                • 2017-07-06
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多