SSL 憑證安裝注意事項與 Nginx HTTPS 加密連線優化

昨天因為安裝一套 nodejs 的 Uptime 專案發現,原來在nodejs的眼底下,我網站SSL是不及格的XD

ERROR: UNABLE_TO_VERIFY_LEAF_SIGNATURE

這樣的錯誤是因為nodejs沒辦法驗證我憑證的資訊!

疑問點1是: 那為啥瀏覽器認得出來?

因為現行主流瀏覽器會自己去抓中繼憑證來比,很自動的就幫你配好驗證。

疑問點2是: 那怎辦,總不會就讓瀏覽器自己來其他工具都不用玩了?

方法如上面的參考文獻,就是把那堆憑證商發給你的憑證檔案”串”在一起就好。

cat www.mxp.tw.crt XXX.ca.crt XXX.root.crt > ssl-bundle.crt

在Linux上就是把這些憑證檔案給一個疊一個起來。

相關資料可以參考: Which is Root? Which is Intermediate?

階層是: 網站憑證->中繼憑證->根憑證

至於安裝在Server上就要看使用的是哪套 HTTP Server了!

我選用的是 Nginx,可以參考: Certificate Installation: NGINX

其他族繁不及備載的可以參考: Certificate Installation

裝好啟用後

出現問題點3: 我的SSL憑證到底還有沒有其他毛病或是不合標準的地方?

恩,答案還是有的!

  1. 測試憑證是否正確安裝的網站: Certificate Installation Checker

  2. COMODO SSL Analyzer v0.9.19 (BETA)

  3. 給你的SSL憑證網站打分數SSL Server Test

上面三個分析的網站都會逐一驗證憑證資訊還有伺服器設定,將憑證串起來只是基本,完整的驗證後就是設定部分!

一開始分數只有B,測試網站的提示是需要針對加密強度與支援度做提升,然後找了一些優化的資訊配置上主機後就提升到A+囉~

最明顯的就是本來瀏覽器提示網站上採用的加密連線是128bit,改進後提升到256bit了!

下面是優化的資訊:

  1. 安裝最新版Nginx(支援與安全性提升)
  2. 根據處理器配置好worker後,將SSL快取打開,指定支援協定,設定啟動ciphers
  3. 加入Strict Transport Security的header,使得瀏覽器請求皆為加密連線
  4. 啟用OCSP stapling做憑證驗證時的快取 – 2014/09/08補

下面是config設定檔片段,為Strict Transport SecurityOCSP stapling的設定 – 2014/09/14補

add_header Strict-Transport-Security "max-age=31536000; includeSubdomains;";
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /path/to/ssl/www.mxp.tw/trustchain.crt;
resolver 8.8.8.8 8.8.4.4;

參考: Enable Perfect Forward Secrecy for nginxOptimizing HTTPS on Nginx

Nginx官方資源: Configuring Https Servers

呼,到這就差不多了~ 另外再找時間來測一下SPDY

Facebook 外掛整合


Share: