为git page开通https踩坑实录

| 字数 747
  1. 1. HTTPS的优点
  2. 2. gitPages注意事项
  3. 3. 安利cloudflare的原因
  4. 4. cloudflare配置的具体步骤
    1. 4.1. 第一步:设置dns
    2. 4.2. 第二步:设置dns信息
    3. 4.3. 第三步:设置ssl&强制跳转
    4. 4.4. 第四步:坐等&排错
  1. 1. HTTPS的优点
  2. 2. gitPages注意事项
  3. 3. 安利cloudflare的原因
  4. 4. cloudflare配置的具体步骤
    1. 4.1. 第一步:设置dns
    2. 4.2. 第二步:设置dns信息
    3. 4.3. 第三步:设置ssl&强制跳转
    4. 4.4. 第四步:坐等&排错

        利用hexo与gitpage开通博客后,无论是pc&mobile登陆时总会发现地址栏前有个感叹号。强迫症表示真的看不下去,所以就去了解了下https。

HTTPS的优点

  • 了解到https是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。
  • 最重要的一点,https可以避免dns挟持,就是可以避免在浏览网页时出现一些小广告弹窗!

        结合自己的代码发现引用的图片全是http协议下的,而且在input(即使type≠keyword)输入内容时感叹号变成了红字叉。我所用的是阿里的域名所以去网站查询https的信息,发现有免费的赛门铁克(Symantec)证书试用。果断申请后,发现:

gitPages注意事项

  • git page自带https,在对应rep的设置中,点击 Enforce HTTPS 即可。
  • git page绑定自定义域名后无法添加ssl证书。
    这个时候有点懵了,不过检索多次相关关键字后,发现了cloudflare这个好东西。大概了解了下后就确定用它了,好处如下:

安利cloudflare的原因

  • 有免费套
  • cloudflare的dns服务器风评还是不错的
    -cloudflare提供 Universal SSL 服务,简单来说就是让任意http站点支持https。
    (具体原理指的是,用cloudflare的dns服务器,当你访问网页时,网页 -> cloudflare 这个过程是加密的,而 cloudflare -> git page这个过程是非加密(http))

具体可参考官方文档: how Cloudflare’s servers connect to your origin for HTTPS requests

cloudflare配置的具体步骤

第一步:设置dns

把自己对应的dns服务器改为cloudflare的,下面以阿里来举例。阿里云 -> 域名 -> 管理 -> 修改dns,出现一下界面:

这是我已经修改后的,单击右边的修改dns服务器即可,把cloudflare给出的俩个dns地址换上来就好。cloudflare给出的dns地址位于:cloudflare -> dns -> Cloudflare Nameservers。

如何判断更换dns成功?
回到cloudflare后,单击overview,如果成功会出现:

第二步:设置dns信息

cloudflare -> dns -> DNS Records 如果这里没设置时有记录先删除,新增一条记录:

第三步:设置ssl&强制跳转

cloudflare -> crypto -> SSL 勾选flexible

cloudflare -> crypto -> Always Use HTTPS 勾选on

第四步:坐等&排错

大概10mins - 30mins左右就会生效,可以在等待的时候使用ping命令来ping个人的域名查看ip。

如果你的博客出现以下情况:

检查gitpage的设置,取消掉勾选的Enforce HTTPS选项,这个设置是有缓存的

可以切换source或者theme chooser这样可以清理掉缓存的Enforce HTTPS选项信息。

参考文章:

使用Cloudflare为自定义域名的GithubPages实现HTTPS化

解决Cloudflare产生的“ERR_TOO_MANY_REDIRECTS”错误