本篇文章更新時間:2019/02/16
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知或向一介資男的 LINE 社群反應。
如果本站內容對你有幫助,歡迎贊助支持


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

WordPress 社群貢獻者、開源社群推廣者。專注於 WordPress 外掛開發、網站效能最佳化、伺服器管理,以及 iDempiere 開源 ERP 導入與客製開發。曾參與 WordCamp Taipei 等社群活動,GitHub Arctic Code Vault Contributor。提供資訊顧問、WordPress 開發教學、主機最佳化與企業 ERP 整合服務。

參與討論

  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