Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
heroku cloudflare子域SSL设置_Ssl_Heroku_Dns_Cloudflare - Fatal编程技术网

heroku cloudflare子域SSL设置

heroku cloudflare子域SSL设置,ssl,heroku,dns,cloudflare,Ssl,Heroku,Dns,Cloudflare,我正在尝试在heroku上的后端应用程序上设置https作为子域,例如: 我真的被我发现的所有相互冲突的在线文档弄糊涂了。而且,我对所有这些SSL的东西都很生疏。此应用程序将只是数据服务的后端。我的前端现在是在我的域下的OpenShift上的https,它工作正常。以下是我所做的: 我在我的heroku应用程序上有一个“嗜好”dyno(7美元/月),我读到我需要这样做 启用此功能 我有一个cloudflare帐户,它通过https为openshift前端提供我的域 我从GoDaddy购买了我的

我正在尝试在heroku上的后端应用程序上设置https作为子域,例如:

我真的被我发现的所有相互冲突的在线文档弄糊涂了。而且,我对所有这些SSL的东西都很生疏。此应用程序将只是数据服务的后端。我的前端现在是在我的域下的OpenShift上的https,它工作正常。以下是我所做的:

  • 我在我的heroku应用程序上有一个“嗜好”dyno(7美元/月),我读到我需要这样做 启用此功能
  • 我有一个cloudflare帐户,它通过https为openshift前端提供我的域
  • 我从GoDaddy购买了我的域名——所以现在它只是指向cloudflare名称服务器
  • 我在heroku(设置选项卡)上设置了子域:api.mydomain.com。它回来说我的“DNS目标”是api.mydomain.com.herokudns.com。它还说“域名:你的应用程序可以在”
  • 我单击了“配置SSL”>“使用自动证书管理自动配置”,它返回到:

    “将您的DNS设置更新到我们的安全域”

  • 老实说,我不太清楚这意味着什么。我尝试返回cloudflare并添加DNS记录(DNS选项卡)。像这样:

  • 类型: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