Contents

如何尋找 TLS 中繼憑證和驗證憑證

最近在專案進行中,我發現 Ubuntu 上的 Flutter 嵌入式網頁中,發現空白頁面。經過檢查,發現是 nginx 沒有設定中繼憑證的問題。由於明天要進行 DEMO,而 MIS 可能無法聯繫到,我需要快速找到中繼憑證。我該怎麼做呢?第一次找到這個問題後,發現有好用的網站可以快速產生中繼憑證,這裡紀錄一下。

參考網路上的中繼憑證設定遺失問題 | Goofy blog解決方式,可以使用What’s My Chain Cert?網站快速產生憑證。

驗證憑證是否正確設定

可進What’s My Chain Cert?網站,輸入網址可以知道是否有正常設定。

https://gist.github.com/user-attachments/assets/257d4d6d-0327-4811-bd21-54731f4e95cb

其實用一般 openssl 指令也可以測試。可參考Linux 指令確認SSL憑證 - 程式狂想筆記這篇文章。

1
2
# 使用 OpenSSL 測試 SSL/TLS 憑證命令
openssl s_client -connect server.yourwebhoster.eu:443
Warning
請注意用瀏覽器判斷憑證是否設定正確,這不是最好的方式。因為中繼憑證設錯,有可能瀏覽器/系統會自動幫你串好憑證,頁面還是會正常顯示。但有些系統會是有問題,就像這個 Case 只發生在 Ubuntu 上面。

產生中繼憑證

在設定 SSL/TLS 憑證時,有時候會遇到中繼憑證缺失的問題。這裡通常有兩地方拿到中繼憑證。

方法1: What’s My Chain Cert 服務

What’s My Chain Cert?提供兩個方法可以產生中繼憑證,但其實正解要去官網才能找才是正確答案。

Tip
注意:雖然 What’s My Chain Cert? 可以快速生成中繼憑證,但最佳的方法是從官方網站獲取。

方法2: 尋找官方提供

官方網站通常會提供最新的中繼憑證,這是最可靠的來源。

憑證合併到中繼憑證

合併完成後,重啟 nginx 服務以應用新的憑證設定:

1
sudo systemctl restart nginx

接著,重新檢查憑證是否正確配置,可以使用以下指令:

1
openssl s_client -connect yourdomain.com:443

如果一切正常,憑證應該會顯示完整的信任鏈。

憑證檢查工具

除了手動檢查外,還可以使用一些線上工具來驗證憑證配置是否正確:

網路還很多其他的工具,可以根據自己的需求選擇適合的工具來檢查憑證配置。

彩蛋

  • badssl.com
    這個網站提供各種 SSL/TLS 配置的測試案例,幫助你了解不同配置的影響。
Tip

為什麼需要中繼憑證?
中繼憑證是用來建立完整的憑證信任鏈,確保瀏覽器和其他客戶端能夠信任你的網站憑證。如果缺少中繼憑證,可能會導致瀏覽器顯示不安全的警告。

如何獲取中繼憑證?
可以從憑證頒發機構 (CA) 的官方網站下載中繼憑證。例如,Let’s Encrypt 和 TWCA 都提供中繼憑證的下載。

如何確認憑證配置正確?
可以使用 openssl 指令或線上工具來檢查憑證配置是否正確。確保憑證鏈完整,沒有缺失的中繼憑證。

這些步驟和工具可以幫助你確保網站的 SSL/TLS 憑證配置正確,提供安全的連接給使用者。