可以使用 openssl
命令來模擬瀏覽器的行為
openssl s_client -connect your.domain.com:443 -showcerts
請將 your.domain.com 替換成你的網域名稱。
解讀輸出結果
執行上述指令後,你會看到類似下面這樣的輸出,每個 Certificate
區塊代表一個憑證。
0 s:
(第一個憑證)subject
: 你的網站憑證(例如CN=elearning.kmsh.gov.tw
)。這是伺服器提供給瀏覽器的第一張憑證。issuer
: 頒發給你網站憑證的中繼憑證名稱(例如CN=政府憑證管理中心 - G3
)。
1 s:
(第二個憑證)subject
: 中繼憑證本身(例如CN=政府憑證管理中心 - G3
)。issuer
: 頒發中繼憑證的根憑證名稱(例如CN=Government Root Certification Authority - G3
)。
如果你的伺服器設定正確,你應該會看到至少兩個憑證:
你的網站憑證。
中繼憑證。
如果輸出中只看到一個憑證(也就是 0 s:
區塊),那就表示你的伺服器沒有提供中繼憑證。 這是最常見的憑證鏈不完整問題,也是導致瀏覽器顯示不安全警告的原因。
檢查 fullchain.pem
檔案:
openssl crl2pkcs7 -nocrl -certfile fullchain.pem | openssl pkcs7 -print_certs -text -noout
解讀輸出結果
執行命令後,您會看到檔案中包含的每一個憑證的詳細資訊。每一個憑證都由 Certificate:
區塊開頭。
如果您的 fullchain.pem
包含了中繼憑證,您應該會看到至少兩個 Certificate:
區塊,分別代表:
您的伺服器憑證 (Server Certificate)
Subject: 會是您的網域名稱,例如
CN=elearning.kmsh.gov.tw
。Issuer: 會是頒發給您的中繼憑證名稱,例如
CN=政府憑證管理中心 - G3
。
中繼憑證 (Intermediate Certificate)
Subject: 會與您的伺服器憑證的
Issuer
相同,例如CN=政府憑證管理中心 - G3
。Issuer: 會是根憑證的名稱,例如
CN=Government Root Certification Authority - G3
。
如果您的 fullchain.pem
只包含一個 Certificate:
區塊,那表示這個檔案只有您的伺服器憑證,沒有包含中繼憑證。這就是導致瀏覽器顯示不安全警告的原因。
沒有留言:
張貼留言
歡迎留下您的問題,請留下您的Moodle版本及環境,我們才能跟據您的版本測試問題並回應。