我正在尝试在heroku上的后端应用上设置https作为这样的子域(例如):
我对我发现的所有冲突的在线文档感到困惑。此外,我对所有这些SSL的东西都很绿。这个应用程序将成为数据服务的后端。我现在的前端是在我的域下的OpenShift上的https,它运行正常。这就是我所做的:
我点击了“配置SSL”> “使用自动证书管理自动配置”,它回来说:
“将您的DNS设置更新到我们的安全域”
说实话,不太确定这意味着什么。我试图回到cloudflare并添加DNS记录(DNS选项卡)。像这样:
Type: CNAME Name: api <--is this right? Value: api.mydomain.com.herokudns.com <-- what do I put here?
但这不起作用。我怎么知道?我打字
heroku certs:auto
它回来'失败'。也试过价值:mydomain.com.herokudns.com没有前面的'api'。我真的很困惑,文档也没多大帮助。有人能帮助我吗?
答案 0 :(得分:4)
我找到了一个更简单的解决方案。修正案在Cloudflare's tutorial中提到。
诀窍是将您的标准heroku应用程序地址(例如:myapp.herokuapp.com
)INSTEAD显示在heroku的SSL接口中显示的xxx.herokudns.com
然后,要使您的自定义子域(例如:api.foodomain.com
)指向它,只需在Cloudflare的DNS中添加CNAME记录
CNAME api myapp.herokuapp.com
它应该有用(它适用于我的情况)。
答案 1 :(得分:1)
好的,如果其他一些疲惫不堪的程序员来到这里。
Cloudflare和Heroku不相处。使用来自cloudflare的SSL。以下是:
heroku
certs:auto:disable
heroku domains
以查看REAL域现在是什么 - 如果未启用ACM,它可能会返回到... herokuapp.com而不是... herokudns.com 在CNAME下的cloudflare(DNS标签页)中设置一个,如下所示:
CNAME | yoursubdomainname | yourdomainname.com.herokuapp.com
在cloudflare中设置Page Rules就像这样: http:// yourdomainname.com/ =&gt;始终使用https
使用完整SSL。
等一个小时左右,确保这些都生效。
希望能有所帮助。