GitHub Pages托管React项目自定义域名SSL证书异常求助
解决GitHub Pages + GoDaddy自定义域名SSL证书错误问题
核心问题是GoDaddy默认的非www到www重定向是HTTP层面的转发,无法正确传递GitHub Pages为你的自定义域名颁发的SSL证书,导致浏览器识别到证书属于*.github.io而非你的域名,触发安全错误。以下是几种可行解决方案:
方案一:用GitHub Pages自带的HTTPS重定向(推荐)
这是最简洁且符合GitHub Pages设计的方案:
- 彻底删除GoDaddy后台的所有非www到www重定向规则
- 在你的React项目根目录创建
CNAME文件,内容仅填写你的www域名(例如www.customdomain.com),提交到GitHub仓库 - 进入GitHub仓库的「Settings」→「Pages」,设置自定义域名为
www.customdomain.com,勾选Enforce HTTPS选项 - 在GoDaddy的DNS管理页面配置以下记录:
- 非www域名(
customdomain.com):添加4条A记录,分别指向185.199.108.153、185.199.109.153、185.199.110.153、185.199.111.153;同时添加4条AAAA记录,指向2606:50c0:8000::153、2606:50c0:8001::153、2606:50c0:8002::153、2606:50c0:8003::153 - www域名:添加1条CNAME记录,指向
<你的GitHub用户名>.github.io
- 非www域名(
- 等待DNS生效(通常1-24小时),GitHub会自动为你的www和非www域名申请SSL证书,之后访问非www域名时会由GitHub Pages自动跳转到www,且全程HTTPS正常
方案二:GoDaddy带掩码的URL转发(不推荐)
如果必须依赖GoDaddy的重定向功能,可尝试:
- 在GoDaddy的URL转发设置中,选择「Forward with Masking」选项,目标地址填写
https://www.customdomain.com - 补充填写页面标题和描述信息,保存设置
- 注意:这种方式本质是通过iframe嵌套展示内容,会影响SEO效果,部分浏览器可能仍会出现证书相关的警告提示,仅作为临时替代方案
方案三:借助Cloudflare代理(适合复杂需求)
如果需要更多DNS控制功能,可通过Cloudflare中转解决:
- 将GoDaddy域名的DNS服务器切换为Cloudflare提供的服务器地址
- 在Cloudflare后台配置DNS记录:非www和www域名分别指向GitHub Pages对应的IP或CNAME
- 开启Cloudflare的SSL/TLS模式为「Full」或「Flexible」,Cloudflare会免费为你的域名颁发SSL证书
- 在Cloudflare的「Rules」→「Page Rules」中创建非www到www的重定向规则,确保跳转全程HTTPS
注意事项
- GitHub Pages的SSL证书生成可能需要1-24小时,即使DNS校验成功也需要耐心等待
- 测试前清除浏览器缓存,或使用无痕模式访问,避免旧证书缓存干扰结果
- 检查GoDaddy DNS记录中是否存在冲突的旧记录,确保仅保留上述配置的记录
内容的提问来源于stack exchange,提问作者Boombaar
相关产品推荐
相关产品推荐

