heroku cloudflare 子域 SSL 设置
heroku cloudflare subdomain SSL setup
我正在尝试在我的 heroku 后端应用程序上将 https 设置为这样的子域(例如):
而且我对我发现的所有相互冲突的在线文档感到非常困惑。另外,我对所有这些 SSL 东西都不太感兴趣。此应用程序将仅作为数据服务的后端。我的前端现在是我域下 OpenShift 上的 https,并且工作正常。这是我所做的:
- 我的 heroku 应用程序上有一个 "hobby" dyno($7/月),我读到我需要
启用这个东西。
- 我有一个 cloudflare 帐户,它为 https 上的 openshift 前端提供我的域。
- 我的域名是从 GoDaddy 购买的——所以现在它只是指向 cloudflare 域名服务器。
- 我在 heroku(设置选项卡)上设置了子域:api.mydomain.com。它回来说我的 "DNS Target" 是 api.mydomain.com.herokudns.com。它还说 "Domain: Your app can be found at http://api.mydomain.com".
我点击了 "Configure SSL" > "Automatically configure using Automated Certificate Management" 然后它返回说:
"update your DNS settings to our secure domain"
老实说,不太确定那是什么意思。我试图返回到 cloudflare 并添加 DNS 记录(DNS 选项卡)。像这样:
Type: CNAME
Name: api <--is this right?
Value: api.mydomain.com.herokudns.com <-- what do I put here?
但这不起作用。我怎么知道?我打字
heroku certs:auto
又回来了 'failing'。还尝试了值:mydomain.com.herokudns.com 前面没有 'api'。我真的很困惑,文档也没什么帮助。有人可以帮助我吗?
好的,以防其他可怜的疲惫的程序员来到这里。
Cloudflare 和 Heroku 相处不来。使用来自 cloudflare 的 SSL。方法如下:
- 在 heroku 上禁用自动认证:
heroku
certs:auto:disable
- 删除您在 heroku 上的域并重新开始
- 在 heroku 上再次添加(子)域
- 键入
heroku domains
以查看 REAL 域现在是什么——如果未启用 ACM,它可能会返回到 ...herokuapp.com 而不是 ...herokudns.com
像这样在 CNAME 下的 cloudflare(DNS 选项卡)中设置一个:
CNAME |你的子域名 | yourdomainname.com.herokuapp.com
在 cloudflare 中设置页面规则如下:
http://yourdomainname.com/ => 始终使用 https
在“加密”选项卡上使用完整 SSL。
等待一个小时左右,确保这些都生效。
希望对某人有所帮助。
我找到了一个更简单的解决方案。 Cloudflare's tutorial.
中提到了修复
诀窍是使用您的标准 heroku 应用程序地址(例如:myapp.herokuapp.com
)代替 heroku 的 SSL 界面中显示的 xxx.herokudns.com
然后,要使您的自定义子域(例如:api.foodomain.com
)指向它,只需在 Cloudflare 的 DNS 中添加一条 CNAME 记录
CNAME api myapp.herokuapp.com
它应该有效(它对我的情况有效)。
我正在尝试在我的 heroku 后端应用程序上将 https 设置为这样的子域(例如):
而且我对我发现的所有相互冲突的在线文档感到非常困惑。另外,我对所有这些 SSL 东西都不太感兴趣。此应用程序将仅作为数据服务的后端。我的前端现在是我域下 OpenShift 上的 https,并且工作正常。这是我所做的:
- 我的 heroku 应用程序上有一个 "hobby" dyno($7/月),我读到我需要 启用这个东西。
- 我有一个 cloudflare 帐户,它为 https 上的 openshift 前端提供我的域。
- 我的域名是从 GoDaddy 购买的——所以现在它只是指向 cloudflare 域名服务器。
- 我在 heroku(设置选项卡)上设置了子域:api.mydomain.com。它回来说我的 "DNS Target" 是 api.mydomain.com.herokudns.com。它还说 "Domain: Your app can be found at http://api.mydomain.com".
我点击了 "Configure SSL" > "Automatically configure using Automated Certificate Management" 然后它返回说:
"update your DNS settings to our secure domain"
老实说,不太确定那是什么意思。我试图返回到 cloudflare 并添加 DNS 记录(DNS 选项卡)。像这样:
Type: CNAME Name: api <--is this right? Value: api.mydomain.com.herokudns.com <-- what do I put here?
但这不起作用。我怎么知道?我打字
heroku certs:auto
又回来了 'failing'。还尝试了值:mydomain.com.herokudns.com 前面没有 'api'。我真的很困惑,文档也没什么帮助。有人可以帮助我吗?
好的,以防其他可怜的疲惫的程序员来到这里。
Cloudflare 和 Heroku 相处不来。使用来自 cloudflare 的 SSL。方法如下:
- 在 heroku 上禁用自动认证:
heroku certs:auto:disable
- 删除您在 heroku 上的域并重新开始
- 在 heroku 上再次添加(子)域
- 键入
heroku domains
以查看 REAL 域现在是什么——如果未启用 ACM,它可能会返回到 ...herokuapp.com 而不是 ...herokudns.com 像这样在 CNAME 下的 cloudflare(DNS 选项卡)中设置一个:
CNAME |你的子域名 | yourdomainname.com.herokuapp.com
在 cloudflare 中设置页面规则如下: http://yourdomainname.com/ => 始终使用 https
在“加密”选项卡上使用完整 SSL。
等待一个小时左右,确保这些都生效。
希望对某人有所帮助。
我找到了一个更简单的解决方案。 Cloudflare's tutorial.
中提到了修复诀窍是使用您的标准 heroku 应用程序地址(例如:myapp.herokuapp.com
)代替 heroku 的 SSL 界面中显示的 xxx.herokudns.com
然后,要使您的自定义子域(例如:api.foodomain.com
)指向它,只需在 Cloudflare 的 DNS 中添加一条 CNAME 记录
CNAME api myapp.herokuapp.com
它应该有效(它对我的情况有效)。