Heroku SSL:安装中间证书?

7

我的注册机构Gandi给我提供了一个中间证书以安装,因此我有3个文件:

  1. 私钥文件(server.key)
  2. 证书文件(mycert.crt)
  3. 中间证书(GandiSomething.pem)

我正在Heroku上使用SSL Beta服务。Heroku CLI heroku _certs:add 需要精确的两个参数,即CRT和KEY。我如何安装中间证书?

3个回答

15

保罗是正确的,您可以组合证书:

cat ssl.crt middle.crt root.crt > all.crt

请确保证书文件末尾有换行符!

然后将其上传到Heroku(如果尚未拥有SSL终端,请使用add):

heroku certs:update --app $YOUR_APP --confirm $YOUR_APP all.crt private.key

但是还有一些小技巧你可能忘了:

  1. 更新你的DNS CNAME记录,将目标从<app>.herokuapp.com更改为安全的<domain>.herokudns.com(请注意,如果你有*.your.domain记录,它可能会捕获请求并将其转发到其他服务器)。
  2. 检查证书链是否正确: SSL检查器
  3. 清除本地DNS缓存:清除DNS缓存提示 (防病毒软件也可能会修补和缓存你的连接)
  4. 重启你的浏览器(以便清除浏览器缓存)
  5. 使用https://连接通过浏览器检查你的应用程序

7

这里的解决方案是将中间证书和生成的证书合并到一个文件中,如此处所述。由于该链接不太可靠,以下是合并后证书文件的样子:

-----BEGIN CERTIFICATE-----
MIIEKjCCAxKgAwIBAgIEOGPe+DANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChML
-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----
wfsm5p9GJKaxB825DOgNghYAHZaS/KYIoA==
-----END CERTIFICATE-----

那么,这个命令将起作用:

heroku _certs:add --app 我的应用名称 file-with-combined-certs.crt myserver.key


我的看起来像这样..遵循被接受的答案帖子,并在我的证书上执行cat命令..证书之间没有换行符是否会成为问题? -----BEGIN CERTIFICATE----- MIIFajCCBFKgAwIBAgIQYIe2ygXshm+UppXSPTQtCDANBgkqhkiG9w0BA-----END CERTIFICATE----------BEGIN CERTIFICATE----- MIIETTAwIBAgIDAjpxMA0GCSqGSIb3DQEBCwUAMEIxCzAJBg -----END CERTIFICATE----- - sneglefar

0

只需将其作为参数传递即可。将中间结果放在中间,它会将其视为另一个参数。然后检查Heroku证书,如果不起作用,请报告回来。


这个不行,该命令给出了以下错误信息:▸ 用法: heroku _certs:add CRT KEY ▸ 您提供了太多的参数。请不要再加入额外的参数重新执行命令。 - Paul Sanwald
你需要做的是像这里所示,将中间证书合并起来。将其包含为第一个证书参数。 - gcoreb
哇,这是很久以前的事了。很高兴我能帮忙。 - gcoreb

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接