Github Pages设置域名

GitHub Pages 自定义域名与 HTTPS 配置完整指南(GoDaddy 示例)

本文记录一次从 0 到 1 给 GitHub Pages 绑定自定义域名并成功开启 HTTPS 的完整过程,包含:

  • 为什么要这样配置
  • GoDaddy DNS 的正确姿势
  • www/根域名/子域名 的取舍
  • 常见错误与排查方法
  • HTTPS 证书签发背后的原理

如果你也遇到过:

  • DNS 一直 Check in progress
  • ERR_CERT_COMMON_NAME_INVALID
  • Domain 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 .github.io

示例:

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 会自动:

  1. 向 Let’s Encrypt 申请证书
  2. 校验你是否真的控制该域名
  3. 将证书部署到 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/
作者
yangxj96
发布于
2025年12月18日
许可协议