Hexo博客利用Netlify升级为HTTPS

探索之旅

一开始是准备用Cloudflare的,不过由于Cloudflare须要更改DNS服务器,而个人某个二级域名被捞仔们拿去开发招新网页了,修改DNS服务器会让整个招新网页域名解析错误,因此我就放弃了这个方案。node

Cloudflare其实是个CDN服务商,其中开启SSL有个Flexible选项。开启后实际上当用户访问站点时,访问的内容是从CloudFlare的CDN服务器传输过来的,之间的传输采用的就是HTTPS协议,信息是加密的,而CDN与源服务器(github Page)的传输用的是普通的HTTP协议。git

官网也告知说,要使用CloudFlare,须要去域名提供商那里更改DNS服务器,变为它提供的域名服务器地址。喜闻乐见,我改完DNS后,NW的招新网站就炸了,打扰了。
并且CloudFlare的访问速度也很慢,很慢,很慢。github

使用tarcert来跟踪IP数据报的访问路径。发现咱们的访问路径,从中国到了部署在欧洲的CloudFlare服务器再到达美国的github服务器。好吧,打扰了。shell

我继续科学搜索,找到了一个很好用的静态资源托管平台Netlify。安全

什么是Netlify?

它是一个提供静态资源网络托管的综合平台。服务器

简单来讲: 它的功能之一就跟咱们以前Hexo博客的静态托管平台 Github Page同样, 不过,Netlify可比github Page功能多多了,并且速度也快。二者的对比在netlify官网有介绍网络

简单来讲它能够hexo

  • 托管静态资源
  • 将静态网站部署到CDN上
  • Continuous Deployment 持续部署,当你提交改变到git 仓库,它就会自动运行build command,进行自动部署。
  • 能够添加自定义域名
  • 重头戏:能够启用免费的TLS证书,启用HTTPS
www.netlify.com 官网有更详细的文档内容。

开始前的准备,建立新仓库

以前的那个 yourname.github.io 的仓库继续保留着,能够不用删。 app

咱们新建一个仓库blog-netlify,不要添加README.md还有其余的一些东西,就建立个空仓库就好,否则后续步骤可能会所以报错。dom

而后咱们在咱们的博客目录下(.../../hexo)进行git的初始化

git init

咱们须要将hexo生成的静态文件给忽略掉,还有node_modules,还有其余一些文件。

将忽略文件添加到.gitignore文件, 可使用CLI的方式添加,或者手动建立文件,直接输入须要忽略的文件。

echo "/public" >> .gitignore
echo "/node_modules" >> .gitignore
echo "/.deploy_git" >> .gitignore
echo "/.vscode" >> .gitignore

查看当前的工做目录和暂存区状态,若是还看到一些咱们忽略的文件出现,则添加到.gitignore中。

git status

将文件修改添加到暂存区中,并提交实际改动到分支上

git add .

git commit -m "[F]Hello Netlify"

绑定远程仓库,输入刚才咱们建立的仓库的地址

git remote add origin <your repo url>

查看绑定状态

git remote -v

没什么问题就push到远程分支

git push origin master

创建新站点

好了,一个netlify须要用到的仓库就搞定了,而后到netlify官网 用github帐户登陆

点击页面的新建站点按钮

选择Github,

还有就是下面给netlify提供github的权限,这里须要勾上

选择你的博客仓库.

Build command 填入 Hexo g Publish directory 填入 public

点击部署站点,它就会开始部署,稍等一下能够看到它的log日志,没什么问题的话,会显示成功部署。

接下来你能够经过它提供的二级域名xxxx.netlify.com来进行访问你的站点,你也能够自定义域名,添加自定义域名,先添加不带www的域名做为主域名,它会自动添加一个www.domain.cc重定向到domain.cc
这时它会检查你添加的两个域名,域名服务器来检查是否能够解析你的自定义域名,如今固然是不能够的,须要你去添加解析记录。

一般须要去你的域名提供商那里添加两条解析记录,一条A记录,一条CNAME记录


到这里就能够 经过自定义域名访问了,而后就是使用HTTPS了。

使用HTTPS

Netlify 使用的是 Let’s Encrypt Certificate.的免费证书,我这里由于我本身以前在腾讯云免费申请过证书了,因此这里就使用我本身的证书.
证书:


第一项须要填的是你当前站点的安全证书,就是上图的chenpt.cc.crt

第二项是对应的私钥

第三项是中级证书,就是根证书下来的那个证书,就是上图的root_bundle.crt

打开证书文件你能够看到证书路径以下

使用的证书跟Apache同样,因此Netlify内部可能使用是Apache来配置HTTPS模块的。

输入完毕加载证书。 而后再启用强制HTTPS。
只能使用HTTPS协议的URL来访问站点,使用HTTP协议的URL会自动重定向HTTPS协议的URL,内部实现是返回301状态码 Move permanently(永久性移动)

开始新博客之旅

如今你想发布博客还须要hexo g -d 么?

答案是不用了。

如今是在source文件夹内的_posts文件添加新文章。而后把仓库的改变提交到分支上,再提交到远程分支上,Netlify获取仓库改变,会自动部署。 因此如今是很方便了。

并且netlify的速度比github page快了不少,体验nice!

以前的github page仓库仍是留着吧,还有就是须要去把以前对github page的域名解析记录给删掉。而后就拥抱netlify吧.

但愿你们都有小绿锁.

相关文章
相关标签/搜索