如何为GitHub Pages站点的www子域名配置正确的SSL证书
解决GitHub Pages自定义域名www子域SSL证书报错的操作步骤
前置状态确认
当前已满足自动证书签发的基础要求,无需调整DNS解析配置:
- dig查询结果显示,
www.joshuafox.com已通过CNAME记录指向主域joshuafox.com,主域A记录指向GitHub Pages官方托管IP,解析链路完全符合证书签发的校验要求 - 非加密链路访问正常:
http://www.joshuafox.com可实现预期跳转,不存在网络连通性问题 - 裸域的HTTPS访问正常,说明站点基础SSL配置无异常
具体启用操作
- 进入托管站点对应的GitHub仓库,打开
Settings标签下的Pages配置面板 - 在Custom domain输入框中,确认填写的是裸主域
joshuafox.com,而非带www的子域;如果之前填写的是www.joshuafox.com,修改为裸主域后保存配置 - 检查仓库根目录下的
CNAME文件,确保文件内容和Pages面板中的自定义域保持一致,为joshuafox.com,修改完成后提交代码推送到仓库 - 保持现有DNS解析配置不变,等待GitHub的自动检测流程完成
生效逻辑与等待周期
完成上述配置后,GitHub Pages的自动安全功能会自动识别同主域下绑定的www变体域名,在确认DNS解析有效后,为两个域名同时签发包含双域名匹配条目(SAN)的SSL证书:
- 正常情况下证书签发周期在1小时以内,无需手动提交证书申请
- 等待期间不要频繁修改自定义域配置,避免打断后台检测流程
生效后最终校验
- 等待证书签发完成后,回到Pages配置面板,勾选Enforce HTTPS选项(若选项为置灰状态,说明证书尚未签发完成,需继续等待)
- 分别访问两个域名的HTTPS地址,确认不存在证书报错,且www子域可正常按规则跳转
常见排障提示
- 若等待3小时以上仍未完成证书签发,可在Pages配置面板暂时删除现有自定义域名,等待10秒后重新输入裸主域保存,强制触发后台检测流程
- 不要在自定义域输入框同时填写裸域和www域名,否则会导致证书仅匹配其中一个域名,触发另一个域名的SSL报错
- 不要为了单独配置www子域的SSL,把自定义域从裸域修改为www域名,否则会反向触发裸域的SSL报错
- 如果DNS记录是近期修改的,需等待DNS缓存全网同步完成后,再启动证书检测流程
内容的提问来源于stack exchange,提问作者Joshua Fox
相关产品推荐
相关产品推荐

