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:
  • 我也太慘了吧!居然是F……
    我不想活了

    • 哈哈,不會啦! 至少你發現這篇,有空可以自己來tune一下囉!

      • 我完全不知道怎麼調整耶
        沒你這麼厲害
        我現在碰到一個問題
        不知道可以問你嗎?

        https://www.liverx.net 在android手機上,會跳出警告
        但是我明明花錢買的
        不知道是哪裡錯了

        • 我手邊沒有Android的手機可以測耶! 用iPhone上看是正常的沒錯,請問你說的警告是甚麼呢?
          如果可以描述的清楚點會更能抓到解決辦法呦!

          • 請問您手機是用的safari嗎?
            有沒有chrome

            警告就是出現不安全的警告
            類似免費憑證出現的警告

          • 手機上這兩款瀏覽器都幫你查看過囉! 沒有警訊~
            你說的警告是在URL列上鎖頭帶有黃色三角型嗎?
            雖說我也沒看到這樣的警告,但若不是紅色X的提示就不用擔心!(需優化的意思)

            可以的話螢幕拍照將錯誤的畫面上傳看看。

          • 傳了好幾次都被砍掉

          • 這個看起來是沒有安裝好或是支援度不夠好的憑證哦!

            方便請問一下是哪家購買的哪個憑證嗎? 我一樣用chrome瀏覽是沒問題,偏向設定問題的機會大點!

          • 後來我請朋友幫我裝好了
            我是在 ssls.com 這家買的
            很便宜的

  • 加入Strict Transport Security的header,使得瀏覽器請求皆為加密連線
    啟用OCSP stapling做憑證驗證時的快取 – 2014/09/08補
    能寫一下這裡的教學嗎!感恩

    • 我把設定檔資訊補在文章內囉! 你可以參考看看~

  • 還有個 dhparam 你有作嗎?

    # openssl dhparam -out /etc/nginx/ssl/dhparam.pem 2048
    nginx.conf:
    ssl_session_cache shared:SSL:50m;
    ssl_session_timeout 5m;
    ssl_dhparam /etc/nginx/ssl/dhparam.pem;

    • Wow, 這個是? 我還不知道耶! 感謝你的資訊,晚點來做點功課!

    • onlinemad

      做 dhparam 超慢的,做到快睡著

  • Pingback: ()