在Heroku上安装SSL之前,请确保您拥有所有必要的文件:
- 主证书文件,拥有.crt扩展名(您可以从证书颁发机构发出的电子邮件中下载此文件)
- CA捆绑文件(您可以与证书一起下载此文件)
- 与CSR一起生成的私钥文件(在第一步中生成的 生成CSR的说明)
注意:安装过程涉及在Heroku上为您的应用购买SSL端点(Heroku SSL端点是一项付费服务,费用为每月$20),导入证书文件和DNS配置。
!请注意,可以通过Heroku SSL选项免费安装证书。为了做到这一点,请使用以下命令:heroku certs:add example.crt example.key
完成后,请根据需要更新每个域的DNS设置。
*如果您的应用已启用SSL端点附加组件以迁移到免费选项,您还需要使用标志--type sni。
注意:如果您的证书已重新发行或续期,您可以使用以下命令在Heroku上更新它:heroku certs:update server.crt server.key
请确保使用新证书和新密钥。
1. 通过在本地环境的终端中运行以下命令来创建SSL端点:
$ heroku addons:create ssl:endpoint
2. 将.crt文件上传到应用的同一SSL目录,并使用以下命令将主证书和CA捆绑合并为一个单独的文件:
$ cat example.crt bundle.crt > server.crt
3. 使用以下命令将证书和私钥导入端点:
$ heroku certs:add server.crt server.key
您将在输出中看到证书的详细信息和分配给您的SSL端点的主机名:
将SSL端点添加到example...完成
example现在由 example-2121.herokussl.com. 提供服务
证书详细信息:
到期时间:
发行者:
开始时间:
注意:创建端点可能需要长达30分钟(在罕见情况下可能需要2小时)。
4. 当您的SSL端点创建后,必须将请求引导到端点主机名。如果您尚未将域添加到应用中,现在可以使用以下命令进行添加:
$ heroku domains:add www.example.com
将www.example.com添加到example...完成
要将请求引导到端点主机,请创建CNAME记录:
记录类型 名称 目标
CNAME www example-2121.herokussl.com
给通配符证书的相似记录:
记录类型 名称 目标
CNAME * example-2121.herokussl.com
重要:为根域设置CNAME记录(@)将覆盖该域设置的所有其他记录。因此,您需要证书涵盖子域名(www.example.com、sub.example.com、*.example.com),以便能够为子域名创建CNAME。
仅在您使用提供CNAME类似功能的DNS提供商时,才能使用针对裸域(example.com)发出的证书。
ZTABOX提供的所有单域证书都覆盖www.example.com和example.com,无论您使用哪一个作为证书的通用名称。
就这样!您的证书现在已配置,您可以通过https访问子域。要检查证书是否正确安装,请使用以下任一检查器:
注意:本文中描述的SSL端点附加组件仅建议用于支持旧版Heroku应用或需要自定义安全策略的应用。这里是使用Heroku SSL选项进行SSL安装的指南。