我的注册商gandi给了我一个要安装的中间证书,所以我有3个文件:
- 私钥文件(server.key)
- 证书文件(mycert.crt)
- 中级证书(GandiSomething.pem)
我在heroku上使用SSL Beta服务。heroku CLI heroku _certs:add
正好接受两个参数,CRT和KEY。如何安装中间证书?
Paul是对的,您可以组合证书:
cat ssl.crt middle.crt root.crt > all.crt
请确保证书文件末尾有换行符
并将其上传到Heroku(如果您还没有SSL Endpoint,请使用add
):
heroku certs:update --app $YOUR_APP --confirm $YOUR_APP all.crt private.key
但有一些技巧你不会忘记:
- 更新您的DNS CNAME记录。将目标从
<app>.herokuapp.com
更改为安全的<domain>.herokudns.com
(请注意,如果您有*.your.domain
记录,它可以捕获请求并将其转发到另一台服务器) - 检查证书链是否正常工作:SSL检查器
- 刷新本地DNS:刷新DNS提示(防病毒软件也可以修补和缓存您的连接)
- 重新启动浏览器(同时刷新浏览器的缓存)
- 通过https://连接使用浏览器检查您的应用程序
这里的解决方案是将中间证书和生成的证书合并到一个文件中,如下所述。因为这个链接是可疑的,下面是合并后证书文件的样子:
-----BEGIN CERTIFICATE-----
MIIEKjCCAxKgAwIBAgIEOGPe+DANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChML
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
wfsm5p9GJKaxB825DOgNghYAHZaS/KYIoA==
-----END CERTIFICATE-----
然后,此命令将起作用:
heroku _certs:add --app name-of-my-app file-with-combined-certs.crt myserver.key
只需将其作为参数传入即可。把中间词放在中间,它把它当作另一个论点。然后检查heroku证书,如果不起作用则报告。