godaddy 的通配符 SSL 证书在 heroku 上不起作用

godaddy 的通配符 SSL 证书在 heroku 上不起作用

我在一个域的不同一级子域上有几个相关服务。目标是在所有子域中启用 https。

因此,我从 GoDaddy 为我的域名 *.domain.com 购买了通配符 SSL 证书。

然后我制作了一个如下所示的密钥:http://blog.dynamic50.com/2011/02/15/ssl-on-wildcard-domains-on-heroku-using-godaddy/

接下来我更新了两个服务:其中一个是独立的 Ruby 应用程序 (goliath),托管在 Rackspace 上,另一个托管在 Heroku 上。独立的应用程序运行正常(证书有效,但 Chrome 表示无法检查证书是否已被吊销),但 Heroku 应用程序浏览器显示“恐慌,证书已被吊销,请离开”。这两个应用程序使用相同的 crt 和密钥文件。问题可能出在哪里?

以下是服务的 CURL 输出(最后几行有差异):

1. standalone

* SSLv3, TLS handshake, Client hello (1):
...
* SSLv3, TLS handshake, Finished (20):
* SSL connection using AES256-SHA
* Server certificate:
*    subject: O=*.mydomain.com; OU=Domain Control Validated; CN=*.mydomain.com
*    start date: 2012-05-17 12:37:43 GMT
*    expire date: 2012-08-02 12:34:51 GMT
*    subjectAltName: standaloneservice.mydomain.com matched
*    issuer: C=US; ST=Arizona; L=Scottsdale; O=GoDaddy.com, Inc.; OU=http://certificates.godaddy.com/repository; CN=Go Daddy Secure Certification Authority; serialNumber=07969287
*    SSL certificate verify ok.

2. heroku

* SSLv3, TLS handshake, Client hello (1):
...
* SSLv3, TLS handshake, Finished (20):
* SSL connection using AES256-SHA
* Server certificate:
*    subject: O=*.mydomain.com; OU=Domain Control Validated; CN=*.mydomain.com
*    start date: 2011-08-02 12:34:51 GMT
*    expire date: 2012-08-02 12:34:51 GMT
*    subjectAltName: herokuservice.mydomain.com matched
*    issuer: C=US; ST=Arizona; L=Scottsdale; O=GoDaddy.com, Inc.; OU=http://certificates.godaddy.com/repository; CN=Go Daddy Secure Certification Authority; serialNumber=07969287
*    SSL certificate verify result: self signed certificate in certificate chain (19), continuing anyway.

欢迎任何建议和调试技巧。

谢谢!

答案1

这两个证书的有效期开始日期不同,因此您不能对这两个证书使用相同的证书。

我敢打赌,你今天让 GoDaddy 重新颁发了通配符证书(这是在独立服务中安装的证书 - 它的有效期是部分年份而不是全年),并且 Heroku 服务上的证书在此过程中被撤销了。

验证openssl s_client -connect server:port -showcerts- 两个证书具有相同的序列号,但它们的指纹不同。您需要确保将新证书放入 Heroku 想要的位置,然后重新启动服务以便加载新文件。

相关内容