为 Git Pages 开通 Https 踩坑实录
date
Sep 21, 2017
slug
gitpage-use-https
status
Published
tags
运维
HTTP
summary
如何白嫖https服务😈
type
Post
Https 优点
- 了解到https是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。
- 最重要的一点,https可以避免dns挟持,就是可以避免在浏览网页时出现一些小广告弹窗!
Git Pages 注意事项
- 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
具体可参考官方文档:
Cloudflare 配置的具体步骤
- 设置dns
把自己对应的dns服务器改为cloudflare的,下面以阿里来举例。阿里云 -> 域名 -> 管理 -> 修改dns,出现一下界面:
![notion image](https://www.notion.so/image/https%3A%2F%2Ffile.notion.so%2Ff%2Ff%2Fc68f9d6d-7637-4d09-8d7e-3509e6e183d6%2F6fd81160-8ac4-4ee3-be85-a9a9571aba99%2Fi7eo_4436910aa5b1e131037aa2f6007f7d23.png%3Fid%3D354ab310-60e1-448c-9d49-183ad30b6930%26table%3Dblock%26spaceId%3Dc68f9d6d-7637-4d09-8d7e-3509e6e183d6%26expirationTimestamp%3D1722031200000%26signature%3Dc1yrSttN-lK5Y6ERGvfSG6Anwfk1ODGOOkp8DIGx7os?table=block&id=354ab310-60e1-448c-9d49-183ad30b6930&cache=v2)
这是我已经修改后的,单击右边的修改dns服务器即可,把cloudflare给出的俩个dns地址换上来就好。cloudflare给出的dns地址位于:cloudflare -> dns -> Cloudflare Nameservers。
如何判断更换dns成功?
回到cloudflare后,单击overview,如果成功会出现:
![notion image](https://www.notion.so/image/https%3A%2F%2Ffile.notion.so%2Ff%2Ff%2Fc68f9d6d-7637-4d09-8d7e-3509e6e183d6%2F6f2fcbb0-dfb1-4090-90d8-88b9914efa46%2Fi7eo_be5528c7b4f28ce887136746b5de2d03.png%3Fid%3D6df412f6-cd16-42b5-a5fc-a905030fd7f6%26table%3Dblock%26spaceId%3Dc68f9d6d-7637-4d09-8d7e-3509e6e183d6%26expirationTimestamp%3D1722031200000%26signature%3DrhhN_WvWovrNUE04SYG2DuF2NDAkGJgphZbHQUAWeYA?table=block&id=6df412f6-cd16-42b5-a5fc-a905030fd7f6&cache=v2)
- 设置dns信息
cloudflare -> dns -> DNS Records 如果这里没设置时有记录先删除,新增一条记录:
![notion image](https://www.notion.so/image/https%3A%2F%2Ffile.notion.so%2Ff%2Ff%2Fc68f9d6d-7637-4d09-8d7e-3509e6e183d6%2F73893e61-b2be-4eaa-90ce-3bc34021e646%2Fi7eo_a726bae253f790060294d739a7ea706f.png%3Fid%3D925bf78d-a4c6-4f56-a94d-0154a9d4e6aa%26table%3Dblock%26spaceId%3Dc68f9d6d-7637-4d09-8d7e-3509e6e183d6%26expirationTimestamp%3D1722031200000%26signature%3DPoVo2IGBCIlYzOvw3w0Bu6bBqyIMC9bH0wSm_rF9Vh0?table=block&id=925bf78d-a4c6-4f56-a94d-0154a9d4e6aa&cache=v2)
- 设置ssl&强制跳转
cloudflare -> crypto -> SSL 勾选 flexible
cloudflare -> crypto -> Always Use HTTPS 勾选 on
- 等待&排错
大概10mins - 30mins左右就会生效,可以在等待的时候使用ping命令来ping个人的域名查看ip。如果你的博客出现以下情况:
![notion image](https://www.notion.so/image/https%3A%2F%2Ffile.notion.so%2Ff%2Ff%2Fc68f9d6d-7637-4d09-8d7e-3509e6e183d6%2Ff37fef05-4da8-4e51-86a6-d3fa5e93910a%2Fi7eo_65772c9053e1e9b5a941fa515bc3c3f5.png%3Fid%3Dc1a972e9-da47-4294-b811-de1a3e35897a%26table%3Dblock%26spaceId%3Dc68f9d6d-7637-4d09-8d7e-3509e6e183d6%26expirationTimestamp%3D1722031200000%26signature%3Da6qvwsZlH1XunoOnta6ivW9ilo8xXKuvEgqbFFOiyUY?table=block&id=c1a972e9-da47-4294-b811-de1a3e35897a&cache=v2)
检查gitpage的设置,取消掉勾选的 Enforce HTTPS 选项,这个设置是有缓存的:
![notion image](https://www.notion.so/image/https%3A%2F%2Ffile.notion.so%2Ff%2Ff%2Fc68f9d6d-7637-4d09-8d7e-3509e6e183d6%2F8e37825e-5f45-4343-a1fd-cfa43b874c7d%2Fi7eo_ee6b38aa59be590bd6736c90911683a4.png%3Fid%3Df74224e4-ea36-4052-98f9-ace3f4f8aadb%26table%3Dblock%26spaceId%3Dc68f9d6d-7637-4d09-8d7e-3509e6e183d6%26expirationTimestamp%3D1722031200000%26signature%3D32eyObnsJEBhpWdl2VG1xYqOBvyqZ_0Y_o7jv-g-AH4?table=block&id=f74224e4-ea36-4052-98f9-ace3f4f8aadb&cache=v2)
可以切换 source 或者 theme chooser 这样可以清理掉缓存的 Enforce HTTPS 选项信息。