首页 > 解决方案 > 如何在 Heroku 中使用 SSL 设置域

问题描述

我正在尝试使用 SSL 证书设置我自己的域,但我无法正确设置。我是否必须将应用 URL 或添加域时生成的 DNS 作为 DNS?我正在使用 GoDaddy,我看到很多教程说你必须使用 *.herokuapp.com DNS,而其他人说 DNS 是在 Heroku 中生成的。

此外,当我在 Google 中查找我的应用程序时,它说该证书对 *.herokuapp.com 无效,但我上传的证书是用于我的个人域的!

最后,有时我收到错误 NET::ERR_CERT_COMMON_NAME_INVALID,有人可以帮帮我吗?

标签: ruby-on-railssslheroku

解决方案


自动证书管理 (ACM)

简单的解决方案甚至不需要您购买 SSL 证书,但您确实需要 Heroku 上的付费测功机。7 美元的爱好层工作正常。

  1. 使用 CLI 或 Web 界面将自定义域添加到应用程序的域

    heroku domains:add www.custom-domain.com
    
  2. 运行heroku domains看看你的 Heroku DNS 目标是什么(这可能是your-app.herokudns.com——注意这不是一个.herokuapp.com域)

  3. 在您的 DNS 注册器中添加一条CNAME指向您的 DNS 目标的记录

  4. 通过运行启用 ACM

    heroku certs:auto:enable
    
  5. 等待您的证书生成并启用

    为您的应用程序上的自定义域完全生成 TLS 证书大约需要 45 - 60 分钟。您可以通过运行以下命令查看为所有自定义域生成的证书的状态:

    heroku certs:auto
    

    如果您的状态显示“DNS 已验证”,则该过程尚未完成。这意味着我们已经验证了您的域状态,并且仍在将其提交给 Let's Encrypt。当它说“确定”时,该过程将完成。

恭喜!您的站点现在应该启用了 ACM。

ACM 由Let's Encrypt提供支持,这是一项用于将 HTTPS 添加到 Web 的出色免费服务。

自定义证书

也可以使用自定义 TLS 证书在 Heroku 上设置 HTTPS 。但是 ACM 更容易,这就是我推荐使用的。


推荐阅读