- 原文地址:Switching Your Site to HTTPS on a Shoestring Budget
- 原文做者:CHRISTOPHER SCHMITT
- 譯文出自:掘金翻譯計劃
- 本文永久連接:github.com/xitu/gold-m…
- 譯者:lsvih
- 校對者:ahonn, Cherry
Google 的 Search Console 小組最近向全部站長髮了一封 email,警告 Google Chrome 將從 10 月起,在包含表單但沒有使用安全措施的網站中顯示警告信息。css
下圖爲我收件箱裏的通知:前端
若是你的網站還不支持 HTTPS,那這個通知就直接與你相關。即便你的網站並無用到表單,也應當早日將網站遷移爲 HTTPS。由於如今這項措施只不過是 Google「標識非安全網站」策略的第一步。他們在消息中明確表示:react
這個新的警告僅僅是將全部經過 HTTP 提供服務的頁面標記爲「不安全」的長期計劃的一部分。android
問題在於:安裝 SSL 證書、將網站 URL 從 HTTP 轉換爲 HTTPS、以及將全部連接和圖像連接等都換成 HTTPS 並非一項簡單的任務。誰會爲了本身的我的網站去費時費錢呢?ios
我使用 GitHub Pages 免費託管了一系列的網站和項目,其中的一部分還使用了自定義域名。所以,我想看看我可否快速、低成本地將這些網站從 HTTP 遷移爲 HTTPS。最後我找到了一種相對簡單且低成本的方案,但願可以幫助到大家。下面讓咱們來探究一下這種方法吧。git
託管在 GitHub Pages 上的網站能夠經過設置很方便地啓用 HTTPS。進入項目設置頁面,勾上「Enforce HTTPS」便可。github
第一步十分的簡單,但它並不符合 Google 對安全網站定義的要求。咱們啓用了 HTTPS 設置,可是沒有爲使用自定義域名的網站安裝、提供 SSL 證書。直接使用 GitHub Pages 提供的網址的站點已經徹底符合要求了,可是使用自定義域名的站點必需要進行一些額外的步驟,讓其在域名的層面上使用安全證書。web
還有個問題,SSL 證書雖然並不貴,但也須要花一筆錢,在你儘量但願下降成本時可不想爲此增長花費。因此得找個辦法解決這個問題。後端
在這兒就不得不提 Cloudflare 了。Cloudflare 是一個內容分發網絡(CDN)提供商,同時它也提供分佈式域名服務,這也意味着咱們能夠利用他們的網絡來設置 HTTPS。使用這個服務真正的好處在於他們提供了免費的方案,讓這一切成爲可能。瀏覽器
另外,值得一提的是在 CSS-Tricks 論壇裏也有許多帖子描述了使用 CDN 的好處。雖然這篇文章中主要探討的是安全性問題,但其實 CDN 除了能幫你使用 HTTPS 以外,仍是下降服務器負載、提高網站性能的絕佳方式。
在下文中,我將簡述我使用 Cloudflare 鏈接 Github Pages 的步驟。若是你尚未 Cloudflare 帳號,你能夠點擊這兒註冊帳號再跟着步驟操做。
首先,咱們須要告訴 Cloudflare 咱們使用的域名。Cloudflare 將會掃描 DNS 記錄,以驗證域名是否存在,並檢查域名的公開信息。
Cloudflare 掃描 DNS 記錄後會將結果展現出來供你查看。若是 Cloudflare 認爲這些信息符合要求,就會在「Status」列中顯示一個橙色的雲的圖標。你須要檢查這份報告,確認其中的信息與你在域名註冊商中留的信息相符,若是沒問題的話,點擊「Continue」按鈕繼續。
Cloudflare 會詢問你須要哪一種級別的服務。瞧~你能夠在這兒選擇「免費」選項。
這一步中,Cloudflare 給咱們提供了其服務器地址,咱們要作的就是將這個地址粘貼到本身的域名註冊商中的 DNS 設置裏。
這一步其實並不困難,但你可能會有些疑惑。你的域名註冊商可能會提供這一步的操做指南。例如點此查看 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 啓用了 HTTPS,可是咱們還須要在 Cloudflare 中作一樣的事。Cloudflare 把這個功能稱爲「Crypto」,不只強制開啓了 HTTPS,還提供了咱們求之不得的 SSL 證書。如今先讓咱們爲 HTTPS 啓用 Crypto,以後的步驟中咱們會獲取到證書的。
開啓「Always use HTTPS」選項:
此時,任何來自瀏覽器的 HTTP 請求都會被切換成更安全的 HTTPS。咱們離「取悅」 Google Chrome 又進了一步。
咱們如今正在用 CDN 來獲取 SSL 證書,因此咱們還能夠利用它的性能優點來獲得更多的好處。咱們能夠經過自動壓縮文件、延長瀏覽器緩存過時時間來提高網站性能。
選擇「Speed」選項,容許 Cloudflare 自動壓縮網站資源:
咱們還能夠經過設置瀏覽器緩存過時時間來最大化地提高性能:
將過時時間設置爲比默認選項更長,可讓瀏覽器在訪問網站時再也不須要每次都去請求那些沒有變動過的網站資源。這將讓訪客在一個月內再次訪問你的網站時節省額外的下載量。
若是你的網站還使用了一些外部資源(咱們不少人都這麼作),那麼還須要確保這些外部資源是安全的。例如,若是你使用了一個 Javascript 框架,但沒有使用 HTTPS 源,那麼 Google Chrome 將會認爲其下降了咱們網站的安全性,所以咱們須要對其進行改進。
若是你使用的外部資源不提供 HTTPS 源,那麼你能夠考慮本身對其進行託管。反正咱們如今已經有了 CDN,作託管服務的負載並不成問題。
已經作到這一步啦!咱們已經在 GitHub Pages 設置中開啓了 HTTPS,如今還缺乏自定義域名與 GitHub Pages 的鏈接證書。Cloudflare 提供了免費的 SSL 證書,咱們能夠在網站中使用它。
打開 Cloudflare 的 Crypto 設置頁面,確認 SSL 證書處於激活狀態:
若是證書處於激活狀態,在主菜單中切換到「Page Rules」頁面,選擇「Create Page Rule」選項:
而後點擊「Add a Setting」,選擇「Always use HTTPS」選項:
點擊「Save and Deply」,恭喜你!如今,咱們擁有了一個在 Google Chrome 眼中徹底安全的網站,而且在遷移的過程當中咱們並不須要接觸、修改不少代碼。
Google 這樣推動 HTTPS 意味着前端開發者們在開發本身的網站、公司網站、客戶網站的時候須要優先考慮 SSL 支持。這一舉措將會促使咱們將站點向 HTTPS 遷移。而使用 CDN 可讓咱們使用免費的 SSL 並提高網站性能,如此超值的事何樂而不爲呢?
你記錄過遷移到 HTTPS 的經歷嗎?在評論裏留言你的遷移方法,讓咱們相互對比吧。
享受你的既安全又快速的網站吧!
掘金翻譯計劃 是一個翻譯優質互聯網技術文章的社區,文章來源爲 掘金 上的英文分享文章。內容覆蓋 Android、iOS、React、前端、後端、產品、設計 等領域,想要查看更多優質譯文請持續關注 掘金翻譯計劃、官方微博、知乎專欄。