使用 CloudFlare 为 hexo 博客实现 HTTPS
博客地址之前一直都是默认的 secsilm.github.io,一直想换个自己的域名,正巧看到 NameBeta 上好几个域名都好便宜,就准备买个搞搞,最后挑中了
alanlee.fun这个域名。
把自己的博客域名换成自己买的域名并实现 HTTPS(GitHub Pages 不支持自定义域名 HTTPS),大概需要这么几个步骤(以在 namecheap 上购买域名为例):
- 在 namecheap 购买自己心仪的域名
- 更新 GitHub 仓库
- CloudFlare 端 DNS 配置
- namecheap 端更改 nameservers
- CloudFlare 端设置使用 HTTPS
第一步购买域名我就不赘述了,只是需要注意的是付款不支持支付宝,支持 PayPal。
以下假设已经购买到
alanlee.fun这个域名。
更新 GitHub 仓库
在你的 hexo 博客本地根目录中的
source目录下增加一个
CNAME文件(无后缀名),里面写上购买的域名,本文中即
alanlee.fun:
然后把更新部署到 GitHub 上:
hexo d -g
此时你应该可以在 GitHub 上看到
CNAME文件了,并且在你的仓库设置中也可以看到你的自定义域名也已经加上了,此时访问
alanlee.fun应该可以进入博客了,但是此时网址栏是没有「小绿锁」的(HTTPS),要想让这个「小绿锁」出现,我们需要使用 CloudFlare 的服务。
CloudFlare 端 DNS 配置
首先你需要注册一个 CloudFlare 账号并把自己的域名添加上去,这个过程很简单,我就不赘述了。注册完登陆之后,点击下图中的
DNS选项卡,另一个
Page Rules是我们一会儿要用到的。
然后如下图一样添加两条记录,
Value处都写自己原来的博客地址,即是
your-github-username.github.com这样的形式,例如我的
secsilm.github.com:
按理说我们下一步要在
Page Rules那设置让我们的域名使用 HTTPS 链接,但是你如果现在就这么做的话你就会发现你设置不了。这是因为你必须在域名提供商那把 nameservers 设为 CloudFlare 的 DNS 才能使用他的 HTTPS 服务,所以我们现在得去 namecheap 那设置一下 nameservers,否则在 CloudFlare 上
Overview处你的域名会显示未激活状态,而不是下面的 active 状态:
namecheap 端更改 nameservers
登录进 namecheap,点击右上角
Account→
Domain List,在
NAMESERVERS处选择
Custom DNS,然后填上 CloudFlare 的nameservers(可以在 CloudFlare 上
Overview选项卡页面找到):
至此,namecheap 端的更改就结束了。
CloudFlare 端设置使用 HTTPS
现在就只需要在
Page Rules选项卡页面创建几个 page rules 就行了,免费用户最多创建 3 个:
第一个 :
第二个 ,可选,让所有非 WWW 的链接安全地转到带 WWW 的链接:
第三个 ,可选,这会在 CloudFlare 的 CDN 中缓存你的静态页面:
至此,alanlee.fun
已经可以安全的访问了,「小绿锁」已经出现了:
缺点
其实这种方法并不是百分百的 HTTPS 链接,你的博客和 CloudFlare 之间还是 HTTP 链接,浏览器和 CloudFlare 之间则是 HTTPS 链接,引用 CloudFlare 官方说明:
Firstly a word on security. If you are deploying a JavaScript app which communicates with remote APIs, be sure not to use this for sensitive data submissions. As GitHub themselves put it: “GitHub Pages sites shouldn’t be used for sensitive transactions like sending passwords or credit card numbers.” Also bear in mind your website source files are publicly accessible in a Git repository, so be extra careful about what you put there.
There are some things we can’t do; GitHub Pages doesn’t let us set custom headers, which unfortunately means we can’t do HTTP/2 Server Push right now.
References
- Secure and fast GitHub Pages with CloudFlare
- Hexo-6-使用Cloudflare免费HTTPS | Madao No More
- 使用Cloudflare为自定义域名的GithubPages实现HTTPS化 | Steffan’s Blog
END
- 点赞 3
- 收藏
- 分享
- 文章举报
- Hexo之使用CodingPages实现全站Https
- C#、VB.NET使用HttpWebRequest访问https地址(SSL)的实现
- [转]C#、VB.NET使用HttpWebRequest访问https地址(SSL)的实现
- gitcafe 使用hexo搭建博客
- C#实现越过CSDN博客中不能使用CSS的style标签功能
- 使用GitHub + Hexo搭建个人博客(十)- 发表新博客
- 使用Hexo搭建Github个人静态博客
- 使用hexo创建github博客
- C#、VB.NET使用HttpWebRequest访问https地址(SSL)的实现方法
- windows2008 使用nginx 反向代理实现负载均衡解决HTTPS 证书问题
- hexo系列教程:(三)hexo博客的配置、使用
- HTTPS协议介绍—使用Nginx+SSL实现部署与性能优化
- 使用github+Hexo人人都能拥有一个美美的博客
- 使用hexo生成博客
- 打造专属自己的博客-使用Hexo、Github Pages、Markdown(风靡IT圈)
- [置顶] Hexo-免费个人博客搭建框架使用
- 转:Exchange笔记之使用RPC over HTTPS实现邮件互访
- Python使用Socket(Https)Post登录百度的实现代码
- Django实现的博客系统中使用富文本编辑器ckeditor
- 使用GitHub + Hexo搭建个人博客(六)- GitHub配置域名(Godaddy)