Github Page 自定义域名免费 https 证书
现在各种组织都在推 https
协议,有很多网站都可以获取到免费 https
证书,比较知名的就是 Let’s Encrypt 了,不过这类服务一般都需要一个自定义域名关联一个自己的服务,在自己的服务端上配置好证书文件。
但很多时候,使用 Github 的小伙伴都会为自己的 github 首页关联一个自定义域名,例如我的 github-page 首页地址是 kinglisky.github.io 然后绑了个自定义的域名 nlush.com。
github 的 https 正式是针对 github.io 域下的,所以咱们绑定自定的域名是不支持 https 的,如何为 github-page 自定义域名加上 https 的小绿帽呢?
其实就是利用 Cloudflare 提供的服务来做的。
Cloudflare 提供一种被他们称之为 Universal SSL 的服务,可以让任意 HTTP 站点支持 HTTPS。它的原理是当访客使用 HTTPS 访问站点的时候,从访客到 Cloudflare 这段是加密的,然后从 Cloudflare 到站点这段是明文的。虽然不是全程加密,但也能很大程度加强网站的安全性。
下面简单介绍一下:
给 github-page 主页绑定自定义域名
这个操作很简单,直接在自己的域名服务平台操作就行了,例如我的域名服务是阿里云提供的,直接为 kinglisky.gihtub.io
加了个 A 记录或者 CNAME,两者都行。不过这里个人推荐使用 A 记录,使用 CNAME 映射的时候 Cloudflare
的解析老是出错,后来换成 A 记录就好,不知道是不是人品问题,有兴趣的同学可以试试。
不知道自己 github-page 主页的 IP 地址的可以直接 ping
一下自己的 username.github.io 。
然后在自己的域名服务商上绑一下映射关系:
绑完后可以试试映射是不是正常的。
注册 Cloudflare 添加站点
先去 https://www.cloudflare.com 上注册一个账号。
然后添加站点:
添加完你的域名后,cloudflare 会自动扫描一波你自定义域名的 DNS 解析:
可以看到我这边原来配置的 A 记录信息。切换到 Overview:
将你你域名服务商默认改成 cloudflare 提供的 DNS:
- leia.ns.cloudflare.com
- thomas.ns.cloudflare.com
在阿里云上更改 DNS 服务器时会报不符合云解析 DNS 配置,可以直接忽略,不影响使用,配置完 DNS 后,DNS 生效需要一段时间,然后 cloudflare 开始为你的自定义域名配置解析,这里也需要一段时间,亲测大概需要 10 ~ 30 分钟,看人品吧。
生效后大概是这样的:
然后可以在 Crypto 面板查看颁发证书的状态,这里也需要小等一下,成功以后如下:
然后可以把你需要的配置项配置上:
整体的操作流程大概是就是这样,然后自定域名的小绿帽就有了。
我的配置为啥没生效?
我刚开始配置的时候也没生效,后来多试了试,发现还是时间的问题,切换 DNS 和 cloudflare 服务生效都需要一段时间,淡定一点,慢慢来。
还有使用 cloudflare 提供的 DNS解析会慢个 100ms,毕竟是免费的东西,不能要求更多了。
PS 有问题可以直接在这里提问:https://github.com/kinglisky/blog/issues
参考资料:
- 开启 Github Pages 自定义域名 HTTPS 和 HTTP/2 支持
- 使用 Cloudflare 为自定义域名的GithubPages实现HTTPS化
- Github Pages 免费使用 SSL 以及 CDN 加速
刚听到的一首魔性的歌,哈哈~
晚安💤