如何在Heroku免费套餐+GoDaddy域名下免费配置Let's Encrypt SSL?
针对Heroku免费套餐+GoDaddy域名的配置指南
作为过来人,完全懂你这种第一次折腾域名和SSL的懵圈感——别担心,针对Heroku免费套餐和GoDaddy域名的配置其实没那么复杂,我给你拆解成清晰的步骤,一步步来就行:
一、把GoDaddy域名绑定到Heroku免费Dyno
先在Heroku后台添加域名
登录你的Heroku账号,找到你的Rails应用,进入「Settings」页面,往下滑找到「Domains and certificates」板块,点击「Add domain」。- 输入你在GoDaddy买的域名(比如
yourdomain.com),点击「Save changes」,Heroku会生成一个目标域名(Target),格式类似xxx.herokudns.com,把这个地址记牢。
- 输入你在GoDaddy买的域名(比如
去GoDaddy配置DNS解析
登录GoDaddy域名管理后台,找到你的域名进入「DNS管理」页面:- 先删除所有现有的
A记录(如果有的话),因为Heroku不支持直接绑定固定IP - 添加一条CNAME记录:主机记录填
@(对应主域名),指向值填刚才Heroku给的xxx.herokudns.com,TTL选默认值即可 - 如果需要绑定子域名(比如
www.yourdomain.com),再添一条CNAME记录,主机记录填www,指向值同样填那个Heroku目标域名
这里要注意:DNS解析生效可能需要10分钟到几小时,别着急刷新,等生效后访问你的域名就能看到Heroku上的Rails应用了。
- 先删除所有现有的
二、给免费Heroku应用配置SSL
Heroku现在对免费套餐应用也提供免费的Let's Encrypt SSL证书,配置起来超省心:
确认域名解析已生效
先验证刚才的DNS配置是否生效,终端里运行nslookup yourdomain.com,如果能指向Heroku的服务器地址就说明没问题。在Heroku启用SSL
打开终端,确保已经登录Heroku CLI(用Rails开发的话应该已经装好了):- 先运行命令:
heroku domains:enable-ssl yourdomain.com - 接着运行:
heroku certs:auto:enable
这两条命令跑完,Heroku会自动帮你申请并配置好SSL证书,还会自动续期,完全不用你手动管。
- 先运行命令:
强制全站HTTPS访问
为了让所有访问都跳转到HTTPS,需要在Rails应用里加个配置:
打开config/environments/production.rb,添加或修改这一行:config.force_ssl = true然后把代码推送到Heroku:
git push heroku main(如果你的主分支是main的话)
几个要注意的小细节
- Heroku免费Dyno会休眠,长时间没人访问会暂停,下次访问需要等几秒唤醒,这是免费套餐的正常特性,不用慌
- 如果配置后还是访问不了,先去Heroku后台看域名状态,再用
heroku logs --tail查看应用日志找问题 - DNS解析偶尔会延迟,要是等了1小时还没生效,可以去GoDaddy后台刷新一下DNS缓存
内容的提问来源于stack exchange,提问作者jacargual
相关产品推荐
相关产品推荐

