All Articles

如何在Github Page站点上启用HTTPS

0. 前言

这篇文章其实来的有点晚了,毕竟我这个博客从之前的wordpress转到github page也已经是很长时间了,当时转的时候就遇到了不是https连接导致打开页面老是弹chrome警告的情况。后来就找了方法开启了https。解决是很早就解决了,这篇文章算是补个记录。

1. 需求

一般来说,我们总是希望自己的博客能有一个单独的域名,而不是 xxx.github.io 这样的域名。github page默认给的域名就是这种 github.io 后缀模式的。那么一般接下来的想法就是使用DNS解析的形式来进行对应的站点转向,保证所有到你的博客域名的访问能得到github page博客的显示,且到 xxx.github.io 的访问也能顺利重定向到你的博客域名上。

这很容易达成,但是,一旦你这么做,之后你用chrome或其他严谨的浏览器进行访问的时候,浏览器肯定会提醒你,当前你访问的这个域名并不安全。因为实际上你自己的域名下的这个站点并不属于你,对于你的域名并没有对应的证书支持,也就没有加密了。所以今天这篇博客主要就是教你如何在使用自己的域名之后仍旧能正常使用https进行访问。

2. 建站

首先是建站:

  • 选择静态博客生成工具,无论是node的还是ruby的,反正市面上主流的有好几套,强烈建议使用你熟悉的编程语言的那套解决方案,后面无论是找问题还是修改功能或是做插件都很方便。我当时就是因为jekyll名气太响用了这个,结果后面懒得转第二次,就不得不被基于ruby的jekyll绑架了
  • github page库。建议这个库只放你的博客生成工具转出来的静态内容,把内容编辑和展示分两个库。因为有的时候一旦你写的某些博客内容被别人投诉成DMCA内容,你的库会被github锁定,后面无论删除或重建都需要github员工的人工介入,非常麻烦。所以尽量把鸡蛋分篮子放
  • 博客markdown内容库。建议放在bitbucket这样的私有代码库服务商,理由同上
  • 生成的静态博客内容放到github page库发布上线

准备工作到此结束,这样一轮操作下来你就有了 xxx.github.io 这样一个站点。上面这段基本上属于废话,很多github page建站教程上都会说,我这里仅只是想补充下内容和发布分离的建议。

github官方就有教程,可以查看这里

3. 域名绑定 & 启用HTTPS

所谓的对你的域名启用HTTPS其实很简单,就是使用cloudflare这家公司的DNS解析,将你博客上的所有内容经过这家公司的CDN缓存,自然所有的访问内容就都经过HTTPS加密了。

具体的做法可以参见cloudflare的官方博客:这里

简单来说就是:

  • 将你的域名解析设置到cloudflare的DNS解析(A记录)
  • 做一个CNAME解析,将你的域名alias到 xxx.github.io 这个域名
  • 无论是A记录还是CNAME记录,都需要打开cloudflare的CDN proxy(就是域名解析记录旁边的箭头和云朵,云朵点亮即可)

这就结束了,简单吧。

UPDATE 2018-05-04:
github官方在2018-05-01发帖,开始官方支持HTTPS。详情见:Custom domains on GitHub Pages gain support for HTTPS

EOF

Published 2017/12/8

Some tech & personal blog posts