Github Pages and SSL
经过一些努力,把博客迁移到了 Github Pages,将域名改成了自定义,并且成功启用了 SSL,以下是步骤(就不截图了)。
部署代码
Github Pages 支持两种级别的部署:
- user / organization 方式
- repo 名字必须为
<user-name or org-name>.github.io
- pages build branch 固定为
master
- 部署后的发布域名即为 repo 名
- repo 名字必须为
- project 方式
- repo 名字没有限制
- pages build branch 可以任意指定
- 发布域名为
<user-name or org-name>.github.io/<project-name>
因此,如果要做个人页面则必然选择第一种方式。
因为 build branch 限制为 master,因此我一开始选择了重建 repo,实际上没有必要,可以直接 rename 旧的 repo
rename 后,到 repo settings -> options -> Github Pages,即可发现自动部署已经开始了。即刻访问 <user-name or org-name>.github.io
可以看到部署结果。
自定义域名
- 在 repo settings -> options -> Github Pages -> Custom Domain 中,填入自己的域名,如
wxsm.space
,保存 - 在自己的域名供应商处修改域名解析,添加两条 A 记录(此处可以参考最新文档):
192.30.252.153
192.30.252.154
- 等待记录生效
过一会就可以发现,使用自定义域名可以访问网站了,并且原 <user-name or org-name>.github.io
会重定向到自定义域名。
启用 SSL
这里是最麻烦的。虽然 Github Pages 原生支持 SSL,但是只针对 *.github.io
域名,对于自定义域名,无法直接启用。因此需要找一个支持 SSL 的 CDN 供应商。考虑到免费这个关键因素,选择了 CloudFlare(以下简称 CF)
- 前往 CF 官网,注册账号,填入自己的域名,点几个 Continue
- 到注册的最后一步时,需要将域名的 DNS 服务器切换为 CF 服务器(CF 会提供两个,两个都要填上),到原域名供应商处修改域名 DNS 服务器即可,24 小时内生效
- 生效后可以打开网站查看是否正常。控制台页面上方有一个 Crypto Tab,点开,SSL 选择
Flexible
或者Full
,同样需要等待一段时间生效 - 生效后即可以通过
https
访问网站了,如果需要强制 SSL,可以到 Page Rules Tab,添加一些记录,为某些域名段设置强制 SSLAways use https