Github Pages设置域名
GitHub Pages 自定义域名与 HTTPS 配置完整指南(GoDaddy 示例)
本文记录一次从 0 到 1 给 GitHub Pages 绑定自定义域名并成功开启 HTTPS 的完整过程,包含:
- 为什么要这样配置
- GoDaddy DNS 的正确姿势
www/根域名/子域名的取舍- 常见错误与排查方法
- HTTPS 证书签发背后的原理
如果你也遇到过:
- DNS 一直 Check in progress
ERR_CERT_COMMON_NAME_INVALIDDomain is not eligible for HTTPS
那么这篇文章可以帮你少踩 90% 的坑。
一、整体目标与推荐架构
最终目标:
博客地址:
https://blog.devops00.com使用 GitHub Pages 托管
HTTPS 正常可用
根域名
devops00.com保留给其他服务使用
推荐的域名结构:
blog.devops00.com → GitHub Pages
www.devops00.com → 可选(跳转 / 其他站点)
devops00.com → 自己的服务器 / 其他用途👉 核心原则:不要把根域名和 GitHub Pages 强行绑定在一起。
二、GitHub Pages 端的准备工作
1️⃣ 确认仓库 Pages 类型
用户/组织站点:
https://<username>.github.io仓库站点:
https://<username>.github.io/<repo>
本文以 用户站点 为例。
2️⃣ 设置 Custom domain
进入:
Repository → Settings → Pages在 Custom domain 中填写:
blog.devops00.com保存后 GitHub 会:
- 自动生成
CNAME文件 - 开始 DNS 校验流程
此时页面会显示:
DNS Check in Progress这是正常现象。
三、GoDaddy DNS 正确配置方式
1️⃣ 配置 CNAME(最关键)
在 GoDaddy DNS 管理中添加:
| 类型 | 主机名 | 值 |
|---|---|---|
| CNAME | blog |
示例:
blog.devops00.com → yangxj96.github.io⚠️ 注意:
- 不要给
blog.devops00.com配置 A 记录 - 不要和 CNAME 混用
2️⃣ 根域名是否需要 A 记录?
如果你:
- 不打算让
devops00.com指向 GitHub Pages - 或将来要部署在自己的服务器
👉 可以完全不配置,或者单独配置为你自己的 IP。
GitHub Pages 不依赖根域名 A 记录。
四、DNS 生效检查(Windows 示例)
1️⃣ 使用 nslookup
nslookup blog.devops00.com 8.8.8.8正确结果应类似:
Name: yangxj96.github.io
Aliases: blog.devops00.com
Addresses:
185.199.108.153
185.199.109.153
185.199.110.153
185.199.111.153如果你看到这些 IP,说明:
- DNS 已正确指向 GitHub Pages
- 等待 GitHub 后台确认即可
2️⃣ 为什么会看到 223.5.5.5?
Server: public1.alidns.com
Address: 223.5.5.5这只是你本次使用的 DNS 解析服务器(阿里 DNS),
并不是域名指向了阿里云。
这是很多人会误解的一点。
五、HTTPS 证书签发流程详解
当 DNS 校验通过后,GitHub 会自动:
- 向 Let’s Encrypt 申请证书
- 校验你是否真的控制该域名
- 将证书部署到 CDN(Fastly)
你会在 Pages 页面看到:
TLS certificate is being provisioned
This may take up to 15 minutes⚠️ 非常重要的注意事项
在此阶段:
- ❌ 不要删除 Custom domain
- ❌ 不要改 DNS
- ❌ 不要反复保存/刷新
否则会 直接中断证书签发流程。
六、验证 HTTPS 是否真正生效
1️⃣ 使用 curl(Windows)
curl -I https://blog.devops00.com成功状态:
HTTP/1.1 200 OK
Server: GitHub.com说明:
- TLS 已成功
- 证书与域名匹配
2️⃣ 浏览器表现
- 地址栏 🔒
- 无任何安全警告
至此配置完成。
七、常见错误与原因总结
❌ ERR_CERT_COMMON_NAME_INVALID
原因:
- DNS 已通
- 但证书尚未签发完成
👉 等待,不要折腾。
❌ Domain is not eligible for HTTPS
原因:
- CNAME / A 记录混用
- DNS 不稳定
- 刚改完还未被 GitHub 识别
👉 保持 DNS 不变,耐心等待。
八、最终最佳实践总结
✔ 使用 子域名 绑定 GitHub Pages
✔ 根域名保留给其他服务
✔ 只用 CNAME,不要乱加 A 记录
✔ HTTPS 交给 GitHub 自动完成
九、结语
GitHub Pages + 自定义域名 + HTTPS
本质上是一个:
DNS 稳定性 + 自动证书系统的耐心问题
一旦理解原理,配置其实非常干净、可靠。
希望这篇文章能帮你少踩坑,也欢迎你在此基础上继续扩展自己的站点架构 🚀
Github Pages设置域名
https://www.devops00.com/2025/12/ops/b003/