在本指南中,你将学习如何在 Heroku 上安装 SSL 证书。 如果您还没有申请证书,第一部分将向您展示如何在购买过程中为 Heroku 生成 CSR 代码。 我们还提供了一些关于在哪里为 Heroku 服务器购买 SSL 证书的实用技巧。
目录
在 Heroku 上生成 CSR
CSR(证书签名请求)是您在 SSL 申请过程中必须提交给证书颁发机构的文本文件。 其中包含有关域名所有权和贵组织的必要信息。 如果 CSR 信息不正确或过期,CA 将不会签发您的证书。
由于无法直接在 Heroku 上生成 CSR 代码,您有两个备选方案。
您有两个选择:
- 您可以使用我们的CSR 生成器,它会根据您的信息自动创建 CSR 和私钥。
- 请按照我们的教程逐步操作,了解如何使用 Apache 和 Nginx 服务器中的内置工具 OpnSSL在 Heroku本地环境中生成 CSR。
然后,用任何文本编辑器打开.csr文件,复制整个文本,包括 –BEGIN NEW CERTIFICATE REQUEST(开始新证书请求)和 –END NEW CERTIFICATE REQUEST(结束新证书请求)标记,并将其粘贴到 SSL Dragon 的 SSL 订单流程中。
现在,你必须等待 CA 验证并确认你的 SSL 请求。 根据证书类型的不同,整个过程可能需要几分钟到 7 个工作日不等。 收件箱中收到证书文件后,请继续执行安装步骤。
在 Heroku 上安装 SSL 证书
过去,要在 Heroku 上安装SSL证书,必须为自己的应用程序购买 SSLEndpoint附加组件,每月价值 20 美元。 今天,Heroku付费计划中新增了一项免费功能HerokuSSL,允许您管理自定义域的SSL/TLS加密。
SSL 端点仍可用于兼容传统客户端和浏览器。 下面是 Heroku SSL 和 SSL Endpoint 的安装说明。
步骤 1. 准备好所有 SSL 证书文件
证书颁发机构验证你的 SSL 申请后,你的收件箱中就会收到所有必要的文件。 要在 Heroku 上成功安装 SSL 证书,需要以下文件:
- 主证书文件,扩展名通常为 .crt
- CA 捆绑文件,包含根证书和中间证书
- 私钥文件,与 CSR 一起在同一服务器上生成
步骤 2. 合并您的证书
请注意,对于 Heroku,您需要将主证书和 CA 捆绑包合并为一个文件。
您可以使用任何纯文本编辑器手动打开 .crt 和 .ca-bundle 文件,然后将 .ca-bundle 文件中的内容粘贴到 .crt.file 中内容的下方。确保代码之间没有空格。
您也可以通过命令行,使用以下命令合并文件:
cat yourcertificate.crt bundle.ca-bundle> server.crt
步骤 3. 安装证书
您可以通过控制面板或 CLI 在 HerokuSSL 上安装证书。 选择您喜欢的方法。
通过 Heroku 控制面板
- 打开证书
- 从列表中选择所需的应用程序,然后选择设置
- 向下滚动页面,在 “域和证书“部分点击 “配置 SSL
- 屏幕上将出现一个新窗口。 从显示的选项中选择 “手动“,然后单击 “继续
- 现在,您必须将合并证书和 CA 捆绑文件拖放到第一个框中,然后点击继续
- 在第二个框中,上传您的私人密钥文件
- Heroku 将提示您更新自定义域名/子域的 DNS 记录。
在此,您需要使用显示的值创建一个 CNAME 记录。
- 主机值(”名称 “等)是您的域名/子域名
- 目标值(”指向 “等)是 yourdomain/subdomain.herokudns.com。
例如: yourdomain.comCNAME yourdomain.com.herokudns.com 或www.yourdomain.comCNAMEwww.yourdomain.com.herokudns.com
配置好 DNS 后,请单击 “ 我已完成“,然后单击 “继续“。 请注意,DNS 全局更新可能需要一段时间。
恭喜您,您的域名已获得 SSL 证书。
通过 Heroku CLI
使用以下命令上传合并证书和 CA 捆绑文件以及私钥:
heroku certs:add server.crt server.key
如果没有默认的 Heroku 应用程序,也需要使用-app标志来指定。 命令如下
heroku certs:add server.crt server.key --app yourappname.
检查是否安装了正确的证书:
heroku certs:info
注意:如果在上传证书时收到 “内部服务器错误 “信息,原因可能是 Heroku CLI 版本过时。 要修复错误,您需要更新 CLI 版本。
步骤 4. 在 SSL 端点上安装 SSL 证书
- 首先,需要创建 SSL 端点。 在提示符下,在本地环境中运行以下命令:$ heroku addons:create ssl:endpoint
- 现在,你必须将 .crt 文件上传到应用程序的同一 SSL 目录中,然后将主证书与 CA 捆绑证书合并为一个文件。要合并证书文件,请使用下面的命令:$ cat example.crt bundle.crt> server.crt
- 下一步是通过以下命令将私钥和证书导入端点:$ cat example.crt bundle.crt> server.crt
- 输出结果将显示 SSL 证书的详细信息以及为 SSL 端点选择的主机名。
为示例添加 SSL 端点... 已完成
示例现在由 example-2121.herokussl.com 提供服务。
证书详情:
有效期至
发行人:
起点:
注意:端点创建可能需要 30 分钟(极少数情况下可能需要 2 小时)。 - 端点准备就绪后,需要将受保护域的请求重新路由到 Heroku 端点主机名。 如果您尚未将域添加到应用程序中,请运行以下命令立即添加:$ heroku domains:add www.example.comAddingwww.example.com to example……………….done要将请求重新路由到端点主机名,请创建 CNAME 记录。 不要忘记将 “示例 “替换为相关信息
- 记录类型– CNAME
- 名称– www
- 目标– example-2121.herokussl.com
对于通配符证书,也要创建类似的记录: - 记录类型– CNAME
- 名称– *
- 目标– example-2121.herokussl.com
如果为根 (@) 域设置 CNAME 记录,它将覆盖为该域设置的所有其他记录。 要为子域创建 CNAME,您的证书必须涵盖子域(www.example.com、subdomain.example.com、*.example.com)。
只有当你的 DNS 提供商在区域顶点提供类似 CNAME 的功能时,你才能为一个空域(example.com)设置证书。
购买 SSL 证书时,请密切关注其规格。 有些证书不支持带 “www “和不带 “www “功能。
这就是 Heroku SSL 的安装过程。 在配置完成后,立即检查 SSL 证书是否存在潜在错误是值得的。 使用这些出色的SSL 工具来获取即时状态报告和漏洞警报。
在哪里为 Heroku 购买 SSL 证书?
在购买 SSL 证书时,你应该注意三个关键方面:验证类型、价格和完美的客户服务。 在 SSL Dragon,我们提供所有这些服务! 我们的 SSL 证书由知名证书颁发机构签署,因此与包括 Heroku 在内的大多数云平台兼容。 无论您需要廉价的域名验证证书还是高级的扩展验证产品,我们都能满足您的需求。
SSL Dragon 的价格是市场上最具竞争力的,而我们专业的支持团队也受到了现有客户的高度赞赏。 如果不知道选择哪种 SSL 证书,只需使用我们的SSL 向导和证书筛选工具。 他们将帮助你找到适合你网站的理想 SSL 产品。
如果你发现任何不准确的地方,或者你对这些 SSL 安装说明有任何细节需要补充,请随时发送反馈到[email protected]。 如果您能提供意见,我们将不胜感激! 谢谢。