【问题标题】:heroku cloudflare subdomain SSL setupheroku cloudflare 子域 SSL 设置
【发布时间】:2017-09-30 00:33:42
【问题描述】:

我正在尝试在 heroku 上的后端应用程序上将 https 设置为像这样的子域(例如):

https://api.mydomain.com

我真的对我发现的所有相互冲突的在线文档感到困惑。此外,我对所有这些 SSL 的东西都很不屑一顾。该应用程序将成为仅用于数据服务的后端。我的前端现在是我域下 OpenShift 上的 https,它工作正常。这是我所做的:

  1. 我的 heroku 应用程序上有一个“爱好”测功机(每月 7 美元),我读到我需要 启用这些东西。
  2. 我有一个 cloudflare 帐户,它为我在 https 上的 openshift 前端提供我的域。
  3. 我从 GoDaddy 购买了我的域 - 所以现在它只是指向 cloudflare 名称服务器。
  4. 我在 heroku(设置选项卡)上设置了子域:api.mydomain.com。它回来说我的“DNS 目标”是 api.mydomain.com.herokudns.com。它还显示“域:您的应用可以在 http://api.mydomain.com 找到”。
  5. 我点击了“配置 SSL”>“使用自动证书管理自动配置”,它返回说:

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

  6. 说实话,不太清楚这意味着什么。我试图回到 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”。我真的很困惑,文档并没有太大帮助。有人可以帮帮我吗?

【问题讨论】:

    标签: ssl heroku dns cloudflare


    【解决方案1】:

    我找到了一个更简单的解决方案。 Cloudflare's tutorial 中提到了该修复。

    诀窍是使用您的标准 heroku 应用地址(例如:myapp.herokuapp.com)代替显示在 heroku 的 SSL 界面中的 xxx.herokudns.com

    然后,要使您的自定义子域(例如:api.foodomain.com)指向它,只需在 Cloudflare 的 DNS 中添加 CNAME 记录

    CNAME api myapp.herokuapp.com
    

    它应该可以工作(对我来说确实如此)。

    【讨论】:

    • 可悲(新):“当应用迁移到新的基础架构时,其默认的 appname.herokuapp.com、DNS 记录和任何 haiku.herokudns.com 自定义域记录都被修改为指向新路由基础设施的 IP 地址。在 24-48 小时内,应用程序可通过新路由基础设施和旧路由基础设施访问。迁移完成后,应用程序将不再可通过旧路由基础设施访问,所有流量必须通过新的基础架构。发送到旧基础架构的应用请求将导致错误代码:H31 Misdirected Request。"
    【解决方案2】:

    好的,万一其他可怜的累了的程序员来了。

    Cloudflare 和 Heroku 相处不来。使用来自 cloudflare 的 SSL。方法如下:

    1. 在heroku上禁用自动认证:heroku certs:auto:disable
    2. 在 heroku 上删除您的域并重新开始
    3. 在 heroku 上再次添加(子)域
    4. 键入heroku domains 以查看现在的真实域 - 如果未启用 ACM,它可能会返回到 ...herokuapp.com 而不是 ...herokudns.com
    5. 在CNAME下的cloudflare(DNS选项卡)中设置一个,如下所示:

      CNAME |你的子域名 |你的域名.com.herokuapp.com

    6. 在 cloudflare 中设置页面规则如下: http://yourdomainname.com/ => 始终使用 https

    7. 在“加密”选项卡上使用完整 SSL。

    8. 等待一个小时左右,确保这些都生效。

    希望对某人有所帮助。

    【讨论】:

    • 域不会返回 herokuapp.com,而是重新显示为 herokudns.com :/
    • 原来它有效,但它不是 yourdomainname.com.herokuapp.com 而是 yourherokuappname.com.herokuapp.com
    • 可悲(新):“当应用迁移到新的基础架构时,其默认的 appname.herokuapp.com、DNS 记录和任何 haiku.herokudns.com 自定义域记录都被修改为指向新路由基础设施的 IP 地址。在 24-48 小时内,应用程序可通过新路由基础设施和旧路由基础设施访问。迁移完成后,应用程序将不再可通过旧路由基础设施访问,所有流量必须通过新的基础架构。发送到旧基础架构的应用请求将导致错误代码:H31 Misdirected Request。"
    猜你喜欢
    • 1970-01-01
    • 2018-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-09
    • 1970-01-01
    • 1970-01-01
    • 2015-06-01
    相关资源
    最近更新 更多