現在就啟用 HTTPS,免費的!

oschina發表於2013-10-02

  從現在開始,你應該可以在瀏覽器位址列https://konklone.com的旁邊,看到一個令人可喜的的鎖了。因為我已經在這個站點啟用了https,我沒有為此付任何費用。

  為什麼你會厭煩做同樣的事:

  這篇文章向大家顯示了你通過在站點啟用https來構建監督防禦網路時,你應該如何做你的那一部分。雖然它有一堆的步驟,但是每一步都很簡單,並且你應該只要一個小時之內能夠完成。

  概要: 目前想在 web 上使用 HTTPS 的話, 你需要獲得一個證照檔案, 該證照由一個受瀏覽器信任的公司所簽署. 一旦你獲得了它, 你就在你的 web 伺服器上指定其所在的位置, 以及與你關聯的私鑰的位置, 並開啟 443 埠準備使用. 你不需要是一個專業級軟體開發人員來做這個, 但是你需要 熟練使用命令列操作, 並能熟練的配置 你操控的伺服器.

  大部分的證照都是要錢的, 但是我聽從了 Micah Lee 的 建議 後用了 StartSSL. 那也是 EFF 正在使用的, 而且 他們針對個人的基礎型證照是免費的. (他們會要求你去支付一個更高階的證照如果你的站點實際上是商業站點的話.) 值得注意的是他們的網站在一開始使用的時候很難用 — 尤其是如果你對於潛藏在 SSL 幕後的概念和術語還很陌生的話(就像我一樣). 幸運的是, 其實並不像想象中的那麼難, 只是會有很多細微的步驟而已.

  下面, 我們將一步步的從註冊開始直到建立屬於你的證照. 我們也會覆蓋在 nginx 環境下的安裝知識, 但是你可以在任何你希望使用的 web 伺服器上使用該證照.

 註冊StartSSL

  開始,訪問註冊頁面 輸入你的資訊

現在就啟用 HTTPS,免費的!

  他們會通過email發給你個驗證碼。在這期間不要關閉選項卡或瀏覽器 , 所以你只要保持開啟狀態,知道獲得驗證碼並貼上它。

現在就啟用 HTTPS,免費的!

  等待幾分鐘就能獲得整數了。一旦通過申請,他們會傳送一封帶有特殊連線和驗證碼的email給你 

  完成之後會給你一個私人金鑰,在他們的伺服器上生成的私人金鑰,但這不是你建立SSL 證照的金鑰.他們用這個私人金鑰生成一個單獨的"認證證照",以後你可以用它來登入StartSSL的控制皮膚,下面你將要為你的網站建立一個整數了。

現在就啟用 HTTPS,免費的!

  最後他們會叫你安裝證照

現在就啟用 HTTPS,免費的!

  在你的瀏覽器上安裝驗證證照

現在就啟用 HTTPS,免費的!

  要是你用的的Chrome 你將會在瀏覽器頭看到下面資訊

現在就啟用 HTTPS,免費的!

  再次,這只是證明你在登入StartSSL 以後通過你的郵件裡的地址跳轉到這個頁面

  現在,我們需要使得StartSSL相信我們擁有自己的域名,我們想要為他生成一個新的證照。從控制皮膚中,點選“Validations Wizard”,然後在下拉表單中選擇”Domain Name Validation“選項。

現在就啟用 HTTPS,免費的!

  輸入你的域名。

現在就啟用 HTTPS,免費的!

  接下來,你要選擇一個email地址,StartSSL將要用它來核實你的域名地址。正如你所見的,StartSSL將會相信你是擁有這個域名的,如果你能用域名控制 webmaster@,postmaster@, orhostmaster@或者是你的email地址已被列為域名註冊人資訊的一部分(就我而言,就是當前的這個konklone@gmail.com)。然後選擇一個你可以收到郵箱的郵箱地址。

現在就啟用 HTTPS,免費的!

  他們會給你傳送一個驗證碼,你可以把它輸入到文字框中來驗證你的域名。

現在就啟用 HTTPS,免費的!

 生成證照

  現在 StartSSL知道你是誰了,知道了你的域名,你可以用你的私人金鑰來生成證照了。

  這時StartSSL能為你生成一個私人金鑰— 在他們常見問題中(FAQ)像你保證他們只生成高質量的隨機金鑰,並且以後不會作為其他的金鑰 — 你也可以自己建立一個,很簡單。

  這將會引導你通過命令列建立via。當你選擇 StartSSL的引導,你可以按引導步奏進行備份,在你為域名申請證照的地方。

  開啟終端,建立一個新的 2048-bit RSA 金鑰

  openssl genrsa -aes256 -out my-private-encrypted.key 2048

  會讓你輸入一個密碼. 選擇一個,並記住它 .這會產生一個加密的私鑰 ,如果你需要通過網路轉移你的金鑰,就可以用這個加密的版本..

  下一步是將其解碼, 從而通過它生成一個“證照籤發請求”. 使用如下命令來解碼你的私鑰:

  openssl rsa -in my-private-encrypted.key -out my-private-decrypted.key

  然後, 生成一個證照籤發請求:

  openssl req -new -key my-private-decrypted.key -out mydomain.com.csr

  回到 StartSSL 的控制皮膚並單擊 “Certificates Wizard” 標籤, 然後在下拉選單裡選擇 “Web Server SSL/TLS Certificate”.

現在就啟用 HTTPS,免費的!

  由於我們已經生成了自己的私鑰, 所以你可以在此單擊 “Skip”.

現在就啟用 HTTPS,免費的!

  然後, 在文字框內貼上入我們之前生成的 .csr 檔案裡面的內容.

現在就啟用 HTTPS,免費的!

  如果一切正常的話, 它就會提示你說已經收到了你發出的證照籤發請求.

現在就啟用 HTTPS,免費的!

  現在, 選擇你之前已經驗證過的計劃使用證照的域名.

現在就啟用 HTTPS,免費的!

  它會要求你新增一個子域, 我給自己的新增的是 “www”.

現在就啟用 HTTPS,免費的!

  它會要求你進行確認, 如果看上去沒錯的話, 單擊 “Continue”.

現在就啟用 HTTPS,免費的!

  注意: 在你等待通過郵件獲得許可的那兒, 你有可能會遇到一個 "需要額外的驗證!" 的步驟, 第一次的時候我沒有遇到, 但是第二次的時候遇到了, 然後我的許可在大概30分鐘左右被批准, 一旦經過許可, 你需要去單擊 "Tool Box" 標籤頁並通過 "Retrieve Certificate" 來獲取你的證照.

  然後應該會是這樣 — 你的證照將出現在一個文字域裡面供你去複製並貼上到一個檔案裡去, 給這個檔案隨便起個你想叫的名字就行, 但是在本指南接下來的部分裡將以 mydomain.com.crt 這個名字去引用它(譯者注, 原文為 asmydomain.com.crt, 參照下文 mydomain.com.crt 名稱來看, 應為as後未加空格導致的拼寫錯誤).

 在nginx中安裝證照

  首先, 確認443埠在你的web伺服器中已經開啟。許多web託管已經預設為你開啟了該埠。如果你使用Amazon AWS,你需要確在你的例項安全組中443埠是開放的。 

  下一步,我們將要建立web伺服器要使用的“證照鏈”。它包含你的證照和StartSSL中介證照(將StartSSL的跟證照包含進來不是必要的,因為瀏覽器已經包含了該證照)StartSSL下載中介證照:

  wget http://www.startssl.com/certs/sub.class1.server.ca.pem

  然後將你的證照和他們的證照連線起來:

  cat mydomain.com.crt sub.class1.server.ca.pem > unified.crt

  最後,告訴你的Web伺服器你的統一證照和你的解密金鑰。 我使用nginx——下面是你需要的nginx的最要配置。它使用301永久重定向將所有的HTTP請求從定向為HTTPS 請求,然後指引伺服器使用證照要金鑰。 

server {
    listen 80;
    server_name konklone.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name konklone.com;

    ssl_certificate /path/to/unified.crt;
    ssl_certificate_key /path/to/my-private-decrypted.key;
}

# for a more complete, secure config: 
#   https://gist.github.com/konklone/6532544
  你可以獲得一個 更全面的nigix配置 ,他開啟了   SPDY, HSTS, SSL session resumption, 和  Perfect Forward Secrecy.

  Qualys' SSL 實驗室提供了完美的 SSL 測試工具, 你可以通過它看到你正在做的事情.

  現在, 檢驗你對nginx的配置是正確的 (這也檢驗金鑰和證照工作正常):

  sudo nginx -t

  然後啟動 nginx:

  sudo service nginx restart

  稍等片刻,在你的瀏覽器中測試。如果進展順利,現在就啟用 HTTPS,免費的!會在你的瀏覽器中出現

 混合內容警告

  如果你的網站在https協議中執行,你要確保所有連結資源 — 圖片,樣式表CSS, JavaScript等,都是HTTPS協議連結.如果你不這樣做,使用者的瀏覽器將無法正常訪問。比較新的火狐瀏覽器,將確保不安全的內容出現在一個安全頁面。

  幸運的是幾乎每一個主要服務程式碼都會嵌入一個https版本,大多數情況下它會自動處理(包括 Google Analytics and Typekit). 你應該為其他人考慮一些個別的情況。

 備份您的金鑰和證照

  不要忘記備份您的 SSL 證照,和它的加密私鑰。我把它們放在一個私有的 git 庫裡面,並放一個說明文字檔案來描述每個檔案以及建立該檔案的程式或者命令。

  您應當也備份您的認證證照,您用這些證照在 StartSSL 上登入。StartSSL 的 FAQ 頁面 已經說明 — 它是您從自己的瀏覽器中匯出的一個包含了證照和金鑰的 .p12 檔案。

  原文地址:https://konklone.com/post/switch-to-https-now-for-free

相關文章