在 2018 年的 6 月份,GitHub 对外宣布正式支持自定义域名的 HTTPS 证书颁发。这次 GitHub 也用的是 Let’s Encrypt 的 SSL 证书,并且颁发之后有效期为三个月。

今天呢,康娜教大家如何使用 Freenom 的免费域名并且让 GitHub 自动签发 SSL 的证书。

首先,我们要有一个免费域名。没有/已经注册过的话可以重新注册一个。

到了结算页面时,在“Use your new domain”下点击“Use DNS”下的“Use Freenom DNS Service”。然后在“IP address”下填入下列四个 IP 地址中的两个。

185.199.108.153
185.199.109.153
185.199.110.153
185.199.111.153

(域名购买时间的话,按自己的需求选择。)

完成之后,回到电脑上。在你自己的源码目录的 source 文件夹中新增一个 CNAME 的文件。注意,这个文件是没有后缀名的,新建文件的时候可以在查看里勾选“文件扩展名”,这样就可以去除文件的后缀名了

新建之后,用自己喜欢的文本编辑器打开,填入你刚刚注册的域名。注意!这个文件里的域名只能是域名,不能有其他东西(比如 https:// http:// 之类的)。

保存并退出。

然后,在自己的 Blog 源码目录下,鼠标右键,点击“Git Bash Here”,在 Git Bash 窗口中,先对原来生成的网页源码清理掉(hexo clean),然后再生成一个并部署在你的 GitHub Page 仓库中(hexo d -g)。

这个时候,GitHub 会自动检测出域名并且检测 DNS A 记录。

你可以在 https://github.com/[你的用户名]/[你的博客原来的地址]/settings 中下拉到 Github Pages 选项卡中查看。

起初,GitHub 会提示你“Not yet available for your site because the certificate has not finished being issued.”这个是提醒你可以稍等一下,证书尚未签发。

如果你在添加 DNS A 记录中添加了 GitHub 的 IP 地址。那么不出意外,大概十几分钟(我用了十三分钟)的时间就可以签发证书。

签发证书之后,将“Enforce HTTPS”这个选项勾起来,这样,你的博客就开启了全站 HTTPS 了。

(本文是根据 https://hex.moe/p/f17d42de/ 进行修改的,谢谢原作者的文章!)

——————–2020/02/29 晚 更新——————–

补充几个本频道管理员提醒我的

1.Freenom最近有可能点选所有免费域名都是不可用,此时在搜索框加上TLD即可。例子:搜索domain,点选下方tk,ml等均是“x不可用”,改成搜索domain.tk即可。

2.实测Github Pages以下配置可用,不需要把裸域名放到里面。另外,建议裸域名/www至少配置一个,否则Freenom的反滥用审查容易取消这个域名。

域名 CNAME 到 [yourname].github.io

(Freenom自带的DNS够用了,TTL默认3600够用),然后到GitHub后台把域名设置成别名。

只这样做大概率https证书签不出来,需要等DNS记录生效后,把Github里的别名删了再加上,过几个小时设置里“强制https“选项就可用启用了,https证书也就生效了(不选中强制就是http和https均可)。