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吧.

但願你們都有小綠鎖.

相關文章
相關標籤/搜索