ruby-on-rails - 如何在 Heroku 中使用 SSL 设置域
问题描述
我正在尝试使用 SSL 证书设置我自己的域,但我无法正确设置。我是否必须将应用 URL 或添加域时生成的 DNS 作为 DNS?我正在使用 GoDaddy,我看到很多教程说你必须使用 *.herokuapp.com DNS,而其他人说 DNS 是在 Heroku 中生成的。
此外,当我在 Google 中查找我的应用程序时,它说该证书对 *.herokuapp.com 无效,但我上传的证书是用于我的个人域的!
最后,有时我收到错误 NET::ERR_CERT_COMMON_NAME_INVALID,有人可以帮帮我吗?
解决方案
自动证书管理 (ACM)
最简单的解决方案甚至不需要您购买 SSL 证书,但您确实需要 Heroku 上的付费测功机。7 美元的爱好层工作正常。
使用 CLI 或 Web 界面将自定义域添加到应用程序的域:
heroku domains:add www.custom-domain.com
运行
heroku domains
看看你的 Heroku DNS 目标是什么(这可能是your-app.herokudns.com
——注意这不是一个.herokuapp.com
域)在您的 DNS 注册器中添加一条
CNAME
指向您的 DNS 目标的记录通过运行启用 ACM
heroku certs:auto:enable
等待您的证书生成并启用
为您的应用程序上的自定义域完全生成 TLS 证书大约需要 45 - 60 分钟。您可以通过运行以下命令查看为所有自定义域生成的证书的状态:
heroku certs:auto
如果您的状态显示“DNS 已验证”,则该过程尚未完成。这意味着我们已经验证了您的域状态,并且仍在将其提交给 Let's Encrypt。当它说“确定”时,该过程将完成。
恭喜!您的站点现在应该启用了 ACM。
ACM 由Let's Encrypt提供支持,这是一项用于将 HTTPS 添加到 Web 的出色免费服务。
自定义证书
也可以使用自定义 TLS 证书在 Heroku 上设置 HTTPS 。但是 ACM 更容易,这就是我推荐使用的。
推荐阅读
- asp.net-core - IdentityServer4 可以充当 Active Directory 提供者吗?
- c# - 从 C++ (crypto++) 到 c# 的匹配加密
- python - Robinhood 是否仍支持其 API?
- c# - Unity 中的自定义编辑器继承
- spring-cloud-stream - Spring Cloud Dataflow Custom App 卡在 Deploying 状态
- sql - Access/SQL:如何在 Access 查询中获取下一个最接近的日期?
- google-bigquery - BigQuery:不同来源、媒介、活动的综合浏览量、会话、用户
- javascript - IconButton onClick 事件启动 onLoad 反应
- jenkins - 如何将 HTTP 请求的正文设置为文件的内容
- javascript - 如何在 json 响应返回之前停止 Javascript 表单验证提交?