Cha*_*ser 9 ssl heroku cloudflare
几天前,在Cloudflare代理(橙色云,如果您知道Cloudflare)后面的1个Heroku应用程序上,我们收到错误消息“不支持CDN中的严格TLS”。
基本上,客户端对https://foo.example.com的请求是通过Cloudflare代理的,然后Cloudflare向https://foo.herokuapp.com发出请求,缓存响应,并将结果传递回客户端。请注意,整个链都是通过HTTPS进行的。我们已经将Clouflare配置为仅通过HTTPS与终端服务器通信,并且我们不希望终端服务器通过HTTP发送响应。
当Heroku的策略检测到您位于已经在处理SSL的代理后面时,似乎不再允许通过SSL进行服务。在过去的一周中,更多的应用程序开始显示此错误,我们不得不禁用Cloudflare的代理。这是他们的文档,给出的原因是“因为Cloudflare提供了SSL证书”。
其他人遇到此问题并有解决方法吗?尽管Cloudflare仍然可以阻止从客户端到Cloudflare的某些漏洞,但这仍使其他漏洞从Cloudflare到最终服务器都可以打开。
更新:我已经收到Heroku的回复:
ACM可以与Full或Flexible一起使用,并且可以与“ Full(Strict)”一起使用,但不建议这样做。ACM完成后,可以使用“完全(严格)”模式。如果需要“完全(严格)”,我们建议使用CA签发的具有CSR签名过程的长期证书。
但是,我没有发现上述说法是正确的。在任何设置(完全或严格)下,Heroku始终报告上述错误。我已经安装了Cloudflare的原始证书来解决此问题。
看来Heroku特别不想让您使用ACM(自动证书管理),在这种情况下,他们使用Let's Encrypt为您自动颁发证书。当您的证书不是面向客户的时,这是不必要的。
如果始终是Cloudflare与您的Heroku应用程序对话,我建议改用“起源证书”。Cloudflare可以生成专门用于您的证书和私钥,以供您在原始服务器上安装,以对Cloudflare进行身份验证。该证书由Cloudflare的专用CA签名,浏览器无法识别该证书,只有Cloudflare本身可以识别。这意味着您不必像普通的CA证书那样跳越繁琐的过程来验证您的域并更新证书。
您可以告诉Cloudflare在Cloudflare仪表板中生成原始证书。您可以根据以下文档将证书安装到Heroku中:
https://devcenter.heroku.com/articles/ssl#manually-uploading-certificates-and-intermediaries
请注意,这在Heroku方面不需要“ ACM”,因为您要携带自己的证书。我希望Heroku在落后于Cloudflare的情况下使用此模式很好(如果没有,那将是Heroku中的一个相当严重的缺陷)。
这是Cloudflare有关原始证书的一般文档:
(免责声明:我实际上并未在Heroku上尝试过此操作,但过去我已成功将原始证书与其他主机一起使用。)
| 归档时间: |
|
| 查看次数: |
461 次 |
| 最近记录: |