30分鐘讓網站支援HTTPS

2016-05-10    分類:WEB開發、程式設計開發、首頁精華1人評論發表於2016-05-10

本文由碼農網 – 小峰原創翻譯,轉載請看清文末的轉載要求,歡迎參與我們的付費投稿計劃

對於一個良好和安全的網路——並且也為了更快的效能,新的API網路例如Service Workers,更佳的搜尋排名,還有——在你的網站上使用HTTPS是關鍵。這裡我會指導大家如何輕鬆搞定。

我不是安全專家也不是搞伺服器的,所以這對我而言也是一種有趣的經歷,而記錄這個過程可以讓其他任何人也能很快地做到這些。包括一些暫時的停頓時間,我總共只花了20-30分鐘。

獲得證書

有一些官方出售的證書,但從我的經驗來看,最容易上手是Let’s Encrypt。它也是免費的,而且背後有一些主要的贊助商,例如Mozilla,Chrome,Akamai和Cisco。

通過Let’s Encrypt為你的網站生成證書的最快方法是使用SSL For Free。然後,你便可以選擇Automatic FTP Verification或者Manual Verification。

選擇好了之後,你就可以得到:

  • 針對網站的SSL證書
  • 證書私鑰
  • CA /鏈證書

安裝證書

下面,針對你的託管服務提供商以及你的伺服器型別,或者如果你是自己託管的話,有不同的方法。就我而言,我對這個網站使用Media Temple,並且它們在Twitter上非常有用,而且它們的線上支援聊天會指點我正確的方向。

所有我需要做的是:

  1. 進入帳戶中心。正如Media Temple有一個,我敢肯定它適用於大部分的託管選項。
  2. 選擇匯入SSL證書,新增我之前得到的SSL證書,私鑰,CA /鏈證書之前。
  3. 成功!

好了嗎,沒有。第3步是騙人的。當我在第2步中進入我的金鑰時,我會得到一個錯誤說我的私鑰是無效的。我慌了一下,然後開始去找問題出在什麼地方。Media Temple支援指引我到Let’s Encrypt論壇上的“Error adding cert, Invalid private key”討論中。

原來需要轉換私鑰到RSA格式,使用下面的程式碼行就可以在終端中快速轉換:

sudo openssl rsa -inform pem -in /etc/letsencrypt/live/www.example.com/privkey.pem -outform pem | less

當然要相應地改變上面的域和路徑。然後複製輸出和提交/另存為私鑰。

更多高階設定

如果你正在某個地方執行你自己的伺服器或虛擬機器,或者恰好沒有針對主機的簡單帳戶中心選擇,那麼我推薦你閱讀下面這些文章考慮手動安裝:

驗證證書安裝

安裝好了之後,驗證證書的一個簡單方法是使用SSL Checker以發現任何潛在的問題。然後,當你使用https://訪問你的網站的時候,所有一切都應該顯示良好和安全。然而在現實生活中很少是這樣的情況。要小心混合的內容,即部分內容通過https://提供服務,而一些內容使用的則是http://。使用http://的內容將不顯示。

注意:不要使用相對路徑/協議相關的URL,即/css/style.css。它會對可能的端點攻擊開放,而且,從http://你可以隨時請求https://資源,反之則不能。

一旦確保安全之後,你應該可以在所有的web瀏覽器中看到掛鎖圖示,在位址列的URL旁邊。如果沒有顯示,那麼可以使用偉大的服務Why No Padlock? 來找出可能的問題。我敢打賭,你的1%的時間用來改變內部引用到https://,然後剩下99%的時間用來搞清楚有關第三方的內容,以及如何安全地包含這些內容。

強制SSL / HTTPS用於所有請求

一旦網站安全並在可以平穩執行HTTPS之後,沒有理由不確保所有請求都通過SSL。

正如使用.htaccess和mod_rewrite的Force SSL/https中概述的那樣,下面有一個程式碼片段可以用來新增.htaccess 檔案以確保:

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]

一起試試新增HTTPS到你的網站吧!你值得擁有。

譯文連結:http://www.codeceo.com/article/add-https-to-website.html
英文原文:Adding HTTPS to Your Website
翻譯作者:碼農網 – 小峰
轉載必須在正文中標註並保留原文連結、譯文連結和譯者等資訊。]

相關文章