前言
看本文章的前提是你使用过github的pages服务,如果没有,请参考 GitHub Pages和自定义github pages 域名为自己的域名,然后再来查看本文。如果一切就绪,那请接着往下看。
准备工作
- 阿里云域名一个&VIP域名解析功能
- 清楚https的原理并了解letsencrypt,如果不清楚请自行补充知识。参考 HTTPS详解&letsencrypt官网
正题
当我们具备以上条件后我们开始正题。
- 检查github pages 自定义域名设置正确。例如我的github pages的域名为 justmd5.github.io ,首先这个是能正常访问的。
- 其次如果以上没问题,那检查https://github.com/yourname/yourname.github.io/settings的设置是否正确
- 现在我们来操作阿里云,操作之前我们使用一条命令,查看下当前justmd5.github.io的解析情况。如图所示:
- 登陆阿里云的域名解析,删除之前自定义域名的cname(如果之前你自定义过域名,应该懂我说的是什么)。
- 设置 A记录,加入刚才dig查询的结果,记住:有几条,设置几条A记录,如:我的自定义域名设置的是:justmd5.com,dig查justmd5.github.io 出来的是四条解析记录,那就添加四条A记录指向dig对应的四个IP地址。
- 接下来的事情就是重点了,使用VIP版(只有VIP版才支持,万恶的资本主义?)的域名解析,设置一条CAA解析,内容为:
0 issue "letsencrypt.org" * 设置成功CAA后的解析情况如图:
到此,阿里云的工作就完成了。这时候你去使用https协议访问你的自定义域名,你猜会怎么样?作为技术人猜什么猜,访问下嘛!不好,浏览器拦截,告诉你证书不对。这时候想知道为什么嘛?我反正是在这里被坑了的。?给你几个提示Troubleshooting custom domains看完再朝下看解决方案。
- 如果你看到我给你的提示网址,里边有一段描述,设置自定义域名https的CAA解析后,记得删除一次自定义域名设置,确保自定义域名栏为空,保存。然后再设置一次自定义域名。这样操作的目的是触发github服务器的自定义域名查找和https证书签名生成。
- 做完上边一步,你发现设置中https那个勾还是灰色的,是不是有点沮丧?♂ 。先别沮丧,灰色选择框的文字,你仔细看了么。对了,就是等待域名证书的生成,当生成完成后,你会发现灰色选择框变为可选了(这个过程有点长,官方说24h,通常过一夜应该就好了。)看一下最终成功吧~!
附其他github pages对应自定义域名对应关系