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

本篇文章更新時間:2019/02/16
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知。
一介資男的 LINE 社群開站囉!歡迎入群聊聊~
如果本站內容對你有幫助,歡迎使用 BFX Pay 加密貨幣新台幣 贊助支持。


昨天因為安裝一套 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


Share:

作者: Chun

資訊愛好人士。主張「人人都該為了偷懶而進步」。期許自己成為斜槓到變進度條 100% 的年輕人。[///////////____36%_________]

參與討論

  1. arguskao
  2. im
  3. nel
  4. onlinemad

16 則留言

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

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

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

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

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

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

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

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

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

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

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

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

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

  2. 還有個 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;

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

  3. 自動引用通知: 解決 Chrome「這個網站所用的安全性設定已過時」問題
  4. 自動引用通知: 解決 Chrome「這個網站所用的安全性設定已過時」問題 | 一介資男

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


文章
Filter
Apply Filters
Mastodon