【问题标题】:Heroku SSL issue its give me verification failsHeroku SSL 问题其给我验证失败
【发布时间】:2014-04-19 11:18:25
【问题描述】:

我用这个命令更新了我在heroku上的所有证书

heroku certs:add heroku.pem server.key -a myapp --bypass

heroku.pem 有以下详细信息

-----BEGIN CERTIFICATE----- 
entrustcert.crt
-----END CERTIFICATE----- 
-----BEGIN CERTIFICATE----- 
L1Cchain.txt
-----END CERTIFICATE----- 
-----BEGIN CERTIFICATE----- 
L1Croot.txt
-----END CERTIFICATE-----

当我在服务器上运行测试时,它会给我这个结果

SSL certificate verify result: self signed certificate in certificate chain (19), continuing anyway.

我已委托 SSL 证书。

请帮我解决这个问题

我用于测试的命令:

curl -kvI "my HTTPS domain name" 

【问题讨论】:

    标签: curl ssl heroku openssl ssl-certificate


    【解决方案1】:

    试试this指南。

    还有official documentation 状态

    接下来使用 certs:add 命令将您的证书、任何中间证书和私钥添加到端点

    这与上面的指南有些矛盾,因为它没有说明根 CA 证书。但我肯定会尝试该指南,如果它不起作用,我会从 heroku.pem 中删除根证书。

    【讨论】:

      【解决方案2】:

      请帮我解决这个问题

      Curl 不应声明错误 19。错误 19 是 OpenSSL 的 X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN。你至少有两个问题。


      首先,您要发送一个包含您的根的证书链。不要在证书链中发送根。仅将最终实体(服务器)证书和构建链所需的任何中间体发送到受信任的根。如果没有中间人,则只发送最终实体(服务器)证书。

      如果我没看错你的帖子,那意味着:

      -----BEGIN CERTIFICATE----- 
      server cert (entrustcert.crt)
      -----END CERTIFICATE----- 
      -----BEGIN CERTIFICATE----- 
      intermediate cert (L1Cchain.txt)
      -----END CERTIFICATE----- 
      

      其次,您需要 Curl 来信任您的根。我并没有真正使用Curl,所以我不知道如何传递单个根来信任。查看curl(1) man pages,Curl 似乎不允许您指定信任点。所以 curl 可能是这个工作的错误工具。

      以下是使用 OpenSSL 的 s_clientCAfile 选项)的方法:

      printf "GET / HTTP/1.0\r\n" | openssl s_client \
          -connect example.com:443 \
          -CAfile <root to trust>
      

      -CAfile 将使用位于 Entrust Root Certificates - SSL 的 Entrust 根之一。但我不知道是哪一个,因为您没有共享 URL 或域。

      如果需要,您可以删除printf,而只需使用openssl s_client。但是s_client 直到套接字关闭(或 CTRL C 被按下)才会完成。

      使用 OpenSSL s_client 跟踪,您也将能够确定构建链所需的中间体。有关解释s_client 结果的示例,请参阅s_client verify certificate failed, but browser acceptCan't verify CA certificate unless CApath or CAfile used


      第三,-k 选项是客户端密钥选项。我不相信您需要它,因为您没有发送客户端证书。但我也不认为这是你的问题的一部分。


      我已委托 SSL 证书。

      最后,您可以从Startcom 获得免费的 1 类证书。默认情况下,它们在大多数桌面和移动浏览器中是受信任的。

      虽然 Startcom 免费颁发证书,但他们确实会收取撤销证书的费用,因为这是要花钱的。其他人则预先收取撤销费用,如果不需要,则将钱放入口袋。

      【讨论】:

        猜你喜欢
        • 2021-03-10
        • 1970-01-01
        • 2019-01-26
        • 2019-01-25
        • 2017-04-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-03-23
        相关资源
        最近更新 更多