heroku cloudflare子域SSL设置
我正在尝试在heroku上的后端应用程序上设置https作为子域,例如: 我真的被我发现的所有相互冲突的在线文档弄糊涂了。而且,我对所有这些SSL的东西都很生疏。此应用程序将只是数据服务的后端。我的前端现在是在我的域下的OpenShift上的https,它工作正常。以下是我所做的:heroku cloudflare子域SSL设置,ssl,heroku,dns,cloudflare,Ssl,Heroku,Dns,Cloudflare,我正在尝试在heroku上的后端应用程序上设置https作为子域,例如: 我真的被我发现的所有相互冲突的在线文档弄糊涂了。而且,我对所有这些SSL的东西都很生疏。此应用程序将只是数据服务的后端。我的前端现在是在我的域下的OpenShift上的https,它工作正常。以下是我所做的: 我在我的heroku应用程序上有一个“嗜好”dyno(7美元/月),我读到我需要这样做 启用此功能 我有一个cloudflare帐户,它通过https为openshift前端提供我的域 我从GoDaddy购买了我的
类型:CNAME
名称:apiOK,以防其他可怜的程序员来这里
Cloudflare和Heroku相处不好。使用cloudflare中的SSL。以下是方法:
禁用heroku上的自动认证:heroku
证书:自动:禁用
删除heroku上的域并重新开始
在heroku上再次添加(子)域
键入heroku domains
查看真正的域现在是什么——如果没有启用ACM,它可能会返回到…herokuapp.com而不是…herokudns.com
在CNAME下的cloudflare(DNS选项卡)中设置该选项,如下所示:
CNAME | yoursubdomainname | yourdomainname.com.herokuapp.com
在cloudflare中设置如下页面规则:
http://yourdomainname.com/ =>始终使用https
在“加密”选项卡上使用完整SSL
等待一个小时左右,以确保这些都生效
希望这对某人有所帮助。我找到了一个更简单的解决方案。修正案在第二章中提到
诀窍是使用标准的heroku应用程序地址(例如:myapp.herokuapp.com
),而不是heroku的SSL界面中显示的xxx.herokudns.com
然后,要使自定义子域(例如:api.foodomain.com
)指向它,只需在Cloudflare的DNS中添加一个CNAME记录
CNAME api myapp.herokuapp.com
它应该可以工作(我的情况就是这样)。域名不会返回到herokuapp.com,而是以herokudns.com的形式重新出现:/n事实证明它可以工作,但不是yourdomainname.com.herokuapp.com,而是yourherokuappname.com.herokuapp.com(新):“当应用程序迁移到新基础结构时,其默认的appname.herokuapp.com、DNS记录和任何haiku.herokudns.com自定义域记录都会被修改,以指向新路由基础结构的IP地址。在24-48小时内,可以通过新的和旧的路由基础设施访问该应用程序。迁移完成后,将无法再通过旧的路由基础设施访问应用程序,所有流量都必须通过新的基础设施。对发送到旧基础结构的应用程序的请求将导致错误代码:H31错误定向请求。“遗憾的是(新):”当应用程序迁移到新基础结构时,其默认的appname.herokuapp.com、DNS记录和任何haiku.herokudns.com自定义域记录将被修改为指向新路由基础结构的IP地址。在24-48小时内,可以通过新的和旧的路由基础设施访问该应用程序。迁移完成后,将无法再通过旧的路由基础设施访问应用程序,所有流量都必须通过新的基础设施。对发送到旧基础结构的应用程序的请求将导致错误代码:H31错误定向请求。“
CNAME api myapp.herokuapp.com