低成本將你的網站切換爲 HTTPS

低成本將你的網站切換爲 HTTPS

Google 的 Search Console 小組最近向全部站長髮了一封 email,警告 Google Chrome 將從 10 月起,在包含表單但沒有使用安全措施的網站中顯示警告信息。css

下圖爲我收件箱裏的通知:前端

圖爲 Google Search Console 團隊發來的關於 HTTPS 支持的通知
圖爲 Google Search Console 團隊發來的關於 HTTPS 支持的通知

若是你的網站還不支持 HTTPS,那這個通知就直接與你相關。即便你的網站並無用到表單,也應當早日將網站遷移爲 HTTPS。由於如今這項措施只不過是 Google「標識非安全網站」策略的第一步。他們在消息中明確表示:react

這個新的警告僅僅是將全部經過 HTTP 提供服務的頁面標記爲「不安全」的長期計劃的一部分。android

當前 Chrome 用以表示支持 HTTP 的站點以及支持 HTTPS 站點的 UI 設計
當前 Chrome 用以表示支持 HTTP 的站點以及支持 HTTPS 站點的 UI 設計

問題在於:安裝 SSL 證書、將網站 URL 從 HTTP 轉換爲 HTTPS、以及將全部連接和圖像連接等都換成 HTTPS 並非一項簡單的任務。誰會爲了本身的我的網站去費時費錢呢?ios

我使用 GitHub Pages 免費託管了一系列的網站和項目,其中的一部分還使用了自定義域名。所以,我想看看我可否快速、低成本地將這些網站從 HTTP 遷移爲 HTTPS。最後我找到了一種相對簡單且低成本的方案,但願可以幫助到大家。下面讓咱們來探究一下這種方法吧。git

對 GitHub Pages 強制啓用 HTTPS

託管在 GitHub Pages 上的網站能夠經過設置很方便地啓用 HTTPS。進入項目設置頁面,勾上「Enforce HTTPS」便可。github

在 GitHub Pages 設置中啓用項目的 HTTPS 支持
在 GitHub Pages 設置中啓用項目的 HTTPS 支持

但咱們仍然須要 SSL

第一步十分的簡單,但它並不符合 Google 對安全網站定義的要求。咱們啓用了 HTTPS 設置,可是沒有爲使用自定義域名的網站安裝、提供 SSL 證書。直接使用 GitHub Pages 提供的網址的站點已經徹底符合要求了,可是使用自定義域名的站點必需要進行一些額外的步驟,讓其在域名的層面上使用安全證書。web

還有個問題,SSL 證書雖然並不貴,但也須要花一筆錢,在你儘量但願下降成本時可不想爲此增長花費。因此得找個辦法解決這個問題。後端

咱們能夠經過 CDN 免費試用 SSL!

在這兒就不得不提 Cloudflare 了。Cloudflare 是一個內容分發網絡(CDN)提供商,同時它也提供分佈式域名服務,這也意味着咱們能夠利用他們的網絡來設置 HTTPS。使用這個服務真正的好處在於他們提供了免費的方案,讓這一切成爲可能。瀏覽器

另外,值得一提的是在 CSS-Tricks 論壇裏也有許多帖子描述了使用 CDN 的好處。雖然這篇文章中主要探討的是安全性問題,但其實 CDN 除了能幫你使用 HTTPS 以外,仍是下降服務器負載、提高網站性能的絕佳方式。

在下文中,我將簡述我使用 Cloudflare 鏈接 Github Pages 的步驟。若是你尚未 Cloudflare 帳號,你能夠點擊這兒註冊帳號再跟着步驟操做。

第一步:選擇「+ Add Site」選項

首先,咱們須要告訴 Cloudflare 咱們使用的域名。Cloudflare 將會掃描 DNS 記錄,以驗證域名是否存在,並檢查域名的公開信息。

Cloudflare 的「Add Website」設置
Cloudflare 的「Add Website」設置

第二步:查看 DNS 記錄

Cloudflare 掃描 DNS 記錄後會將結果展現出來供你查看。若是 Cloudflare 認爲這些信息符合要求,就會在「Status」列中顯示一個橙色的雲的圖標。你須要檢查這份報告,確認其中的信息與你在域名註冊商中留的信息相符,若是沒問題的話,點擊「Continue」按鈕繼續。

Cloudflare 給出的 DNS 記錄報告
Cloudflare 給出的 DNS 記錄報告

第三步:獲取免費方案

Cloudflare 會詢問你須要哪一種級別的服務。瞧~你能夠在這兒選擇「免費」選項。

Cloudflare 的免費方案選項
Cloudflare 的免費方案選項

第四步:更新域名解析服務器(NS 服務器)

這一步中,Cloudflare 給咱們提供了其服務器地址,咱們要作的就是將這個地址粘貼到本身的域名註冊商中的 DNS 設置裏。

在域名註冊商設置中使用 Cloudflare 提供的域名解析服務器
在域名註冊商設置中使用 Cloudflare 提供的域名解析服務器

這一步其實並不困難,但你可能會有些疑惑。你的域名註冊商可能會提供這一步的操做指南。例如點此查看 GoDaddy 的指南,瞭解如何經過他們的服務更新域名解析服務器。

完成這一步以後,你的域名將會很快被映射到 Cloudflare 的服務器上,這些服務器將成爲域名與 Github Pages 之間的中間層。不過,這一步須要耗費一些時間,Cloudflare 可能須要 24 小時來處理這個請求。

若是你沒有用主域名,而是用了子域名來使用 GitHub Pages,則須要額外進行一步操做。打開你的 GitHub Pages 設置頁面,在 DNS 設置中添加一條 CNAME 記錄,設置它指向 <your-username>.github.io,其中 <your-username> 是你的 Github 帳號。此外,你須要在 GitHub 項目的根目錄下添加一個文件名爲 CNAME 的無後綴名文本文檔,其內容爲你的域名。

下面的屏幕截圖爲在 Cloudflare 設置中將 GitHub Pages 子域名添加爲 CNAME 記錄的例子:

將 GitHub Pages 子域名加入 Cloudflare
將 GitHub Pages 子域名加入 Cloudflare

第五步:在 Cloudflare 中啓用 HTTPS

如今,咱們從技術上說已經爲 GitHub Pages 啓用了 HTTPS,可是咱們還須要在 Cloudflare 中作一樣的事。Cloudflare 把這個功能稱爲「Crypto」,不只強制開啓了 HTTPS,還提供了咱們求之不得的 SSL 證書。如今先讓咱們爲 HTTPS 啓用 Crypto,以後的步驟中咱們會獲取到證書的。

Cloudflare 主菜單中的 Crypto 選項
Cloudflare 主菜單中的 Crypto 選項

開啓「Always use HTTPS」選項:

在 Cloudflare 設置中開啓 HTTPS
在 Cloudflare 設置中開啓 HTTPS

此時,任何來自瀏覽器的 HTTP 請求都會被切換成更安全的 HTTPS。咱們離「取悅」 Google Chrome 又進了一步。

第六步:使用 CDN

咱們如今正在用 CDN 來獲取 SSL 證書,因此咱們還能夠利用它的性能優點來獲得更多的好處。咱們能夠經過自動壓縮文件、延長瀏覽器緩存過時時間來提高網站性能。

選擇「Speed」選項,容許 Cloudflare 自動壓縮網站資源:

容許 Cloudflare 自動壓縮網站資源
容許 Cloudflare 自動壓縮網站資源

咱們還能夠經過設置瀏覽器緩存過時時間來最大化地提高性能:

在 Cloudflare 的 Speed 設置中指定瀏覽器緩存
在 Cloudflare 的 Speed 設置中指定瀏覽器緩存

將過時時間設置爲比默認選項更長,可讓瀏覽器在訪問網站時再也不須要每次都去請求那些沒有變動過的網站資源。這將讓訪客在一個月內再次訪問你的網站時節省額外的下載量。

第七步:使用安全的外部資源

若是你的網站還使用了一些外部資源(咱們不少人都這麼作),那麼還須要確保這些外部資源是安全的。例如,若是你使用了一個 Javascript 框架,但沒有使用 HTTPS 源,那麼 Google Chrome 將會認爲其下降了咱們網站的安全性,所以咱們須要對其進行改進。

若是你使用的外部資源不提供 HTTPS 源,那麼你能夠考慮本身對其進行託管。反正咱們如今已經有了 CDN,作託管服務的負載並不成問題。

第八步:激活 SSL

已經作到這一步啦!咱們已經在 GitHub Pages 設置中開啓了 HTTPS,如今還缺乏自定義域名與 GitHub Pages 的鏈接證書。Cloudflare 提供了免費的 SSL 證書,咱們能夠在網站中使用它。

打開 Cloudflare 的 Crypto 設置頁面,確認 SSL 證書處於激活狀態:

Cloudflare 的 Crypto 設置中顯示 SSL 證書爲激活狀態
Cloudflare 的 Crypto 設置中顯示 SSL 證書爲激活狀態

若是證書處於激活狀態,在主菜單中切換到「Page Rules」頁面,選擇「Create Page Rule」選項:

在 Cloudflare 設置中建立頁面規則
在 Cloudflare 設置中建立頁面規則

而後點擊「Add a Setting」,選擇「Always use HTTPS」選項:

對整個域名都強制使用 HTTPS!注意圖中文本中的星號很重要
對整個域名都強制使用 HTTPS!注意圖中文本中的星號很重要

點擊「Save and Deply」,恭喜你!如今,咱們擁有了一個在 Google Chrome 眼中徹底安全的網站,而且在遷移的過程當中咱們並不須要接觸、修改不少代碼。

總結

Google 這樣推動 HTTPS 意味着前端開發者們在開發本身的網站、公司網站、客戶網站的時候須要優先考慮 SSL 支持。這一舉措將會促使咱們將站點向 HTTPS 遷移。而使用 CDN 可讓咱們使用免費的 SSL 並提高網站性能,如此超值的事何樂而不爲呢?

你記錄過遷移到 HTTPS 的經歷嗎?在評論裏留言你的遷移方法,讓咱們相互對比吧。

享受你的既安全又快速的網站吧!


掘金翻譯計劃 是一個翻譯優質互聯網技術文章的社區,文章來源爲 掘金 上的英文分享文章。內容覆蓋 AndroidiOSReact前端後端產品設計 等領域,想要查看更多優質譯文請持續關注 掘金翻譯計劃官方微博知乎專欄

相關文章
相關標籤/搜索