GitHub Pages 自定义域名已支持 https,不必再依赖 Cloudflare

2018 年 5 月 1 日 GitHub Blog 宣布增加了 Github Pages 对自定义域名的 https 支持

Cloudflare One-Click SSL 的缺陷

我的域名 现由 Cloudflare 提供解析服务,Cloudflare 提供的一键 https 的功能可以将原来的 http 网站变为加密的 https 网站,证书也是自动更新的。比如 会变成 https://upupming.site 会变成 。 虽然根域名和一级子域名能起作用,但是二级子域名(例如 )无法被覆盖,需要订购付费服务才能添加自定义域名的 Dedicated Certificate。因此我决定转而寻求其他解决方案。

使用其他 SSL 方案

由于、 等很多域名都是使用的 GitHub Pages,而之前 GitHub Pages 自定义域名不支持 https,所以我才使用了 Cloudflare 的域名解析服务来加上 https,参见这里

然而 2018 年 5 月 1 日 GitHub Blog 宣布增加了 __ Github Pages 对自定义域名的 https 支持__,有兴趣的同学可以尝尝鲜,按照这里的说明更新 A 记录,注意一定要删除自定义域名后重新加入。

If you’re updating the IP address of an existing A record, first remove and then re-add your custom domain to the repository you’re using to publish your Pages site to trigger the process of enabling HTTPS.

加入之后仓库 Pages 设置中会提示:

Enforce HTTPS — Not yet available for your site because the certificate has not finished being issued

这个也不太清楚是为什么,个人感觉应该是 GitHub 那边的问题。我等了一天还是这样就在 发邮件寻求帮助,十分钟左右就解决了。

我的英文太蹩脚就不贴出来了,GitHub 那边的回复如下:

Hi Li,

Thanks for getting in touch! I took a look at both of your domains and your DNS is set up correctly. I’ve nudged the process along, and it looks like a certificate has been approved for both!

You should be able to enforce HTTPS from the repository settings page now.

Best regards,
GitHub Support

解决了 GitHub Pages 的 https 之后,我干脆就不再使用 Cloudflare 提供的 SSL 功能了,对于自己的不使用 GitHub Pages 的二级域名,则可以使用 nginx + Let’s Encrypt 加入 https,使用 301 重定向强制使用 https


现在对于 Github Pages,GitHub 那边已经解决了 https 的问题;对于不使用 GitHub Pages 的域名,自行配置即可,不必再依赖 Cloudflare 的 SSL 功能了。


  1. Cloudflare ssl
  2. Why isn’t SSL working for my site
  3. Custom domains on GitHub Pages gain support for HTTPS
  4. configuring-a-records-with-your-dns-provider
  5. secure and fast github pages with cloudflare
  6. 301 redirect and why should you care
文章作者: upupming
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 upupming 的博客