OVH域名绑定Heroku应用后,如何将HTTP访问切换为HTTPS?
常见配置遗漏点及排查方案
- 域名解析配置错误
Heroku应用的IP是动态浮动的,不能直接在OVH后台配置A记录绑定固定IP,否则会导致请求没有落到Heroku为你配置了SSL证书的节点上,出现证书不匹配的报错。正确配置方式是:- 到Heroku应用控制台的「Settings」-「Domains」板块,复制对应自定义域名的Heroku DNS目标(格式一般为
xxx.herokudns.com) - 到OVH域名解析后台,将你两个域名的CNAME记录指向上述DNS目标;如果要使用裸域名(不带www的根域名),请配置ANAME/ALIAS记录指向该目标,不要使用A记录
- 到Heroku应用控制台的「Settings」-「Domains」板块,复制对应自定义域名的Heroku DNS目标(格式一般为
- Heroku端SSL强制跳转未开启
无需在React层做HTTPS跳转,直接在Heroku控制台的SSL设置板块,将SSL传输策略修改为「强制HTTPS」,Heroku会在服务端直接将所有HTTP请求301重定向到HTTPS,避免前端跳转出现的加载顺序问题。你也可以通过Heroku CLI执行heroku certs:auto:enable确认自动证书管理功能正常启用。 - Ruby on Rails后端未开启强制SSL配置
打开Rails项目的config/environments/production.rb文件,确认config.force_ssl = true已被启用,该配置会自动为响应添加HSTS头,同时完成服务端的HTTPS跳转,优先级高于前端跳转逻辑。修改配置后重新部署应用即可生效。 - 证书及DNS缓存未生效
Heroku自动SSL证书签发后,需要10-30分钟完成全球节点的配置同步,同时你本地的DNS缓存也可能导致访问的是旧的解析结果。可以等待半小时后,清空浏览器缓存或者用无痕模式测试访问。 - 前端跳转逻辑域名匹配错误
如果你在React跳转逻辑中硬编码了heroku.app的原生域名,会出现证书不匹配的问题——Heroku给你签发的证书仅覆盖你自己的mpjrigot.eu和mpjrigot.fr,访问heroku.app域名时证书主体不匹配,就会触发Chrome的安全告警。调整跳转逻辑为跳转到你自己的自定义域名即可。
内容的提问来源于stack exchange,提问作者Volpito
相关产品推荐
相关产品推荐

