如何获取Heroku通配符域名SSL证书并导入(Cloudflare环境)
获取适配Cloudflare的通配符SSL证书
你有两种可靠途径获取适配需求的通配符SSL证书:
方法一:使用Cloudflare Origin CA
这是Cloudflare官方提供的免费证书,专门用于源服务器(如你的Heroku应用),最长有效期15年,完美适配通配符域名:
- 登录Cloudflare控制台,进入目标域名的管理页面
- 切换到「SSL/TLS」选项卡,选择「源服务器」子页面
- 点击「创建证书」,勾选「通配符证书」,在主机名处填写
*.domain.com - 选择证书有效期后点击「下一步」
- 下载PEM格式的证书文件(包含证书和私钥),务必妥善保存私钥,不要泄露给第三方
方法二:使用Let's Encrypt(免费开源证书)
如果需要兼容更广泛的客户端,可以选择Let's Encrypt的通配符证书,结合Cloudflare DNS验证完成申请:
- 安装Certbot工具(以Ubuntu为例):
sudo apt install certbot - 安装Cloudflare DNS验证插件:
sudo apt install python3-certbot-dns-cloudflare - 创建Cloudflare API配置文件
cloudflare.ini,内容如下(替换为你的API令牌):dns_cloudflare_api_token = "你的Cloudflare API令牌" - 配置文件权限设置为仅自己可读:
chmod 600 cloudflare.ini - 运行命令生成通配符证书:
certbot certonly --dns-cloudflare --dns-cloudflare-credentials cloudflare.ini -d *.domain.com - 证书生成后,会存储在
/etc/letsencrypt/live/domain.com/目录下,需要用到fullchain.pem(证书链)和privkey.pem(私钥)
将通配符SSL证书导入Heroku
完成证书获取后,按照以下步骤导入到Heroku:
- 确保已安装Heroku CLI并登录:
heroku login - 执行证书导入命令(替换为你的应用名称和证书路径):
heroku certs:add /path/to/fullchain.pem /path/to/privkey.pem --app your-app-name - 验证证书状态:
heroku certs,确认状态显示为OK - 最后在Cloudflare的「DNS」选项卡中,添加
*.domain.com的CNAME记录,指向你的Heroku应用域名(如your-app-name.herokuapp.com),并将Cloudflare的SSL模式设置为「完全」(Let's Encrypt证书)或「严格」(Cloudflare Origin CA证书)
内容的提问来源于stack exchange,提问作者1baz
相关产品推荐
相关产品推荐

