天天看點

利用Cloudflare為基于GitHub Pages的Hexo部落格添加HTTPS支援● 前言● 注冊 Cloudflare● 添加站點● 修改DNS● 開啟 HTTPS● 重定向強制 HTTPS

文章目錄

  • ● 前言
  • ● 注冊 Cloudflare
  • ● 添加站點
  • ● 修改DNS
  • ● 開啟 HTTPS
  • ● 重定向強制 HTTPS
HTTP(超文本傳輸協定),是一個基于請求與響應,無狀态的,應用層的協定,常基于TCP/IP協定傳輸資料,網際網路上應用最為廣泛的一種網絡協定,所有的WWW檔案都必須遵守這個标準。設計HTTP的初衷是為了提供一種釋出和接收HTML頁面的方法。
HTTPS(超文本傳輸安全協定),是以安全為目标的HTTP通道,簡單講是HTTP的安全版。即HTTP下加入SSL層,HTTPS的安全基礎是SSL,是以加密的詳細内容就需要SSL。它是一個URI scheme(抽象辨別符體系),句法類同http:體系。用于安全的HTTP資料傳輸。

● 前言

GitHub Pages 自帶的域名(xxx.github.io)支援開啟 https 服務,可以在倉庫的【Settings】- 【GitHub Pages】下勾選【Enforce HTTPS】即可,但是如果你設定了自定義域名的話,就比較複雜了,因為 hexo 部落格是托管在 GitHub 上的,沒有自己的伺服器,是以也不支援上傳 SSL 證書,從2018年5月1日起,GitHub官方也支援自定義域名開啟https了,實作方法可參考我的文章:《利用官方支援為基于GitHub Pages的Hexo部落格啟用HTTPS》,另外一種方法就是利用 Cloudflare 的 CDN 中轉來啟用 HTTPS,這種方法的弊端就是國内通路速度可能會變慢,本文主要講述這種方法

Cloudflare 是一家美國的跨國科技企業,以向客戶提供網站安全管理、性能優化及相關的技術支援為主要業務,它提供了免費的 https 服務,注意不是應用SSL證書,實作原理:使用者到CDN伺服器的連接配接為 https 方式,而CDN伺服器到 GithubPages 伺服器的連接配接為 http 方式,在CDN伺服器那裡加上反向代理

● 注冊 Cloudflare

到 Cloudflare官網 新增賬號

利用Cloudflare為基于GitHub Pages的Hexo部落格添加HTTPS支援● 前言● 注冊 Cloudflare● 添加站點● 修改DNS● 開啟 HTTPS● 重定向強制 HTTPS

● 添加站點

添加你的站點,一直下一步即可

利用Cloudflare為基于GitHub Pages的Hexo部落格添加HTTPS支援● 前言● 注冊 Cloudflare● 添加站點● 修改DNS● 開啟 HTTPS● 重定向強制 HTTPS
利用Cloudflare為基于GitHub Pages的Hexo部落格添加HTTPS支援● 前言● 注冊 Cloudflare● 添加站點● 修改DNS● 開啟 HTTPS● 重定向強制 HTTPS

如果你已經在域名服務商那裡解析過域名的話,之後就會出現你域名的解析清單,如果還沒有解析過,可以參考《為hexo部落格配置個性域名》

利用Cloudflare為基于GitHub Pages的Hexo部落格添加HTTPS支援● 前言● 注冊 Cloudflare● 添加站點● 修改DNS● 開啟 HTTPS● 重定向強制 HTTPS

● 修改DNS

點選下一步 Cloudflare 會提供給你兩個 DNS 位址

利用Cloudflare為基于GitHub Pages的Hexo部落格添加HTTPS支援● 前言● 注冊 Cloudflare● 添加站點● 修改DNS● 開啟 HTTPS● 重定向強制 HTTPS

到域名服務商那裡修改DNS,以阿裡雲為例,依次選擇【控制台】-【域名】,選擇你的域名,點選【管理】-【修改DNS】,将上面 Cloudflare 提供的兩個 DNS 位址填進去,會過幾分鐘才生效

利用Cloudflare為基于GitHub Pages的Hexo部落格添加HTTPS支援● 前言● 注冊 Cloudflare● 添加站點● 修改DNS● 開啟 HTTPS● 重定向強制 HTTPS
利用Cloudflare為基于GitHub Pages的Hexo部落格添加HTTPS支援● 前言● 注冊 Cloudflare● 添加站點● 修改DNS● 開啟 HTTPS● 重定向強制 HTTPS
利用Cloudflare為基于GitHub Pages的Hexo部落格添加HTTPS支援● 前言● 注冊 Cloudflare● 添加站點● 修改DNS● 開啟 HTTPS● 重定向強制 HTTPS

● 開啟 HTTPS

在 Cloudflare 管理頁面,點選【Crypto】選項,選擇 SSL 的模式為【full】,注意:在CloudFlare 上激活站點後,可能需要24小時才能頒發新證書,耐心等待即可

利用Cloudflare為基于GitHub Pages的Hexo部落格添加HTTPS支援● 前言● 注冊 Cloudflare● 添加站點● 修改DNS● 開啟 HTTPS● 重定向強制 HTTPS

關于三種模式 Flexible、Full、Full (Strict) 的差別:

  • Flexible:訪客與 Cloudflare 之間是加密的,Cloudflare 到站點伺服器是不加密的
  • Full:訪客到 Cloudflare、Cloudflare 到站點伺服器都是加密的,它不會驗證你伺服器上的證書是否合法,是以你可以在你伺服器上安裝任何證書,包括自簽名證書
  • Full (strict):訪客到 Cloudflare、Cloudflare 到站點伺服器都是加密的,它會驗證你伺服器上的證書是否合法,你必須在你的伺服器上安裝有可信賴的CA憑證,并且這個證書必須是未過期,包含有域名等資訊的

至此,我們的域名就支援 https 通路了,但是當使用者輸入 http://xxxxxx 通路時,浏覽器依舊會以 http 協定來通路,并不會跳轉到 https,這時候就需要利用重定向來解決了

● 重定向強制 HTTPS

Cloudflare 提供了一個名叫 Page Rules 的頁面規則的功能,我們可以利用此功能對 URL 做一些處理,當使用者通路是 HTTP 的時候重定向到 HTTPS,點選【Page Rules】選項,點選【Create Page Rules】,建立如下規則并儲存即可

利用Cloudflare為基于GitHub Pages的Hexo部落格添加HTTPS支援● 前言● 注冊 Cloudflare● 添加站點● 修改DNS● 開啟 HTTPS● 重定向強制 HTTPS

現在我們的 Hexo 部落格就實作了全站 HTTPS!

繼續閱讀