G2EX

为Github的Hexo博客启用SSL/TLS

CloudFlare的免费套餐提供了SSL,可以用它为我们独立域名的博客启用HTTPS。本文以 http://g2ex.me 为例。

主要步骤

  1. 注册CloudFlare,添加个人网站,获取CLoudFlare提供的Nameservers;
  2. 修改自己的域名提供商,把站点的Nameservers修改为CloudFlare提供的Nameservers
  3. 等待CloudFlare添加的网站为激活状态,使用https打开个人网站;
  4. 修改网站模版,使http跳转到https

详细步骤

一、注册CloudFlare

首先注册CloudFlare,注册后按照提示Add Websites,输入域名后点击Begin Scan

Begin Scan

到达最后一步,会提示把自己网站的域名Name Server更换为:

1
2
charles.ns.cloudflare.com
ivy.ns.cloudflare.com

CloudFlare Name Servers

二、修改域名提供商的Nameservers

本站使用了Godaddy域名提供商,登录Godaddy,在域名的SETTINGS中,点击Nameservers下的Manage:

Godaddy Nameservers

勾选Custom并点击ADD NAMESERVER,添加上边CloudFlare给的两个Name Servers。

自定义Nameserver

添加CloudFlare提供的Nameservers

三、等待CloudFlare确认

稍等片刻(几分钟到十几分钟),在CloudFlare中点击Recheck Nameservers,可以看到网站已经处于激活状态了。

CloudFlare网站激活

之后,便可以用 https://g2ex.me 访问站点了。

四、强制跳转

至此,必须手动输入https前缀才能访问加密的站点,要想在任何情况下都以加密方式访问网站,可以在网站模版的头中加入httphttps的强制跳转。

以当前Hexo的NexT主题为例,打开layout目录下的_layout.swig,在<head>标签中加入以下代码,注意把yoursite.com替换为你的域名,这里为g2ex.me

1
2
3
4
5
<script type="text/javascript">
var host = "yoursite.com";
if ((host == window.location.host) && (window.location.protocol != "https:"))
window.location.protocol = "https";
</script>

修改后,使用Hexo重新部署到Github上,完毕。

参考文章

https://blog.xingoxu.com/setup-log/blog-setup/github-pages-ssl.html