利用Cloudflare为基于GitHub Pages的Hexo博客添加HTTPS支持
文章目錄
- ● 前言
- ● 注冊 Cloudflare
- ● 添加站點
- ● 修改DNS
- ● 開啟 HTTPS
- ● 重定向強制 HTTPS
HTTP(超文本傳輸協議),是一個基于請求與響應,無狀態的,應用層的協議,?;赥CP/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官網 注冊賬號
● 添加站點
添加你的站點,一直下一步即可
如果你已經在域名服務商那里解析過域名的話,之后就會出現你域名的解析列表,如果還沒有解析過,可以參考《為hexo博客配置個性域名》
● 修改DNS
點擊下一步 Cloudflare 會提供給你兩個 DNS 地址
到域名服務商那里修改DNS,以阿里云為例,依次選擇【控制臺】-【域名】,選擇你的域名,點擊【管理】-【修改DNS】,將上面 Cloudflare 提供的兩個 DNS 地址填進去,會過幾分鐘才生效
● 開啟 HTTPS
在 Cloudflare 管理頁面,點擊【Crypto】選項,選擇 SSL 的模式為【full】,注意:在CloudFlare 上激活站點后,可能需要24小時才能頒發新證書,耐心等待即可
關于三種模式 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】,新建如下規則并保存即可
現在我們的 Hexo 博客就實現了全站 HTTPS!
總結
以上是生活随笔為你收集整理的利用Cloudflare为基于GitHub Pages的Hexo博客添加HTTPS支持的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 人民币又升值了!如果人民币与美元的比价达
- 下一篇: 信用卡都可以取现吗 信用卡取现可以分期吗