用戶端與我的 Classic Load Balancer 之間的 SSL/TLS 連線失敗,並出現「不受信任的憑證」錯誤訊息。或者,當我嘗試將 SSL/TLS 憑證上傳至我的 Classic Load Balancer 時,收到錯誤訊息。
簡短說明
如果您在 Classic Load Balancer 上使用 HTTPS/SSL 接聽程式,則必須安裝 SSL/TLS 憑證。負載平衡器會使用該憑證來終止 SSL/TLS 用戶端連線。如果您遇到憑證上傳問題,請針對憑證上傳錯誤進行疑難排解。
如果連線完成但憑證不受信任,則瀏覽器或用戶端會顯示下列其中一種「untrusted certificate」錯誤訊息:
- 「此網站提供的安全憑證並非由信任的憑證授權單位所簽發。」
- 「example.com 使用無效的安全憑證。該憑證不受信任,因為簽發單位憑證不明。」
- 「example.com 使用無效的安全憑證。該憑證不受信任,因為它是自行簽署的憑證。」
若要解決此問題,請針對「untrusted certificate」錯誤進行疑難排解。
解決方法
疑難排解憑證上傳錯誤
檢查組態
請確認您符合匯入憑證的先決條件。同時,確認憑證不包含多餘的空白字元,以 -----BEGIN CERTIFICATE----- 開頭,並以 -----END CERTIFICATE----- 結尾。
如果您仍然遇到問題,請根據收到的錯誤採取下列疑難排解動作。
疑難排解「公開金鑰憑證無效。」
如果公開金鑰憑證不是 X.509 PEM 格式,則憑證可能無法載入。若要解決此問題,請將您的憑證轉換為 X.509 PEM 格式。如需有效憑證格式的範例,請參閱 疑難排解伺服器憑證。
疑難排解憑證上傳成功但鏈結被拒絕的問題
如果鏈結包含您的公開金鑰憑證,或是憑證順序不正確,就會發生此問題。
鏈結只能依序包含通向根憑證的中繼憑證。鏈結必須以您的憑證認證機構 (CA) 所產生的憑證開頭,並以 CA 根憑證結尾。不要包含您的公開金鑰憑證,也不要包含不屬於信任路徑的中繼憑證。通常,CA 會以正確排序的組合形式提供中繼憑證和根憑證,您可以直接使用。
疑難排解「私密金鑰無效」
如果私密金鑰憑證使用不正確的格式或已加密,就會發生此問題。若要解決此問題,請確認私密金鑰憑證使用正確的格式。同時,移除密碼片語,使金鑰不會被加密。
疑難排解無法在 ACM 主控台中部署的憑證
如果您的 Classic Load Balancer 使用 4096 位元 RSA 或橢圓曲線 (EC) 金鑰,則無法在 AWS Certificate Manager (ACM) 主控台中使用該憑證。請改為將憑證上傳至 AWS Identity and Access Management (IAM)。然後,在您設定負載平衡器接聽程式時,為預設 SSL 憑證選擇從 IAM。
疑難排解未顯示在 ACM 主控台中的 ACM 憑證
如果您在 ACM 主控台中找不到您的 ACM 憑證,則該憑證可能位於與您的負載平衡器不同的 AWS 區域。若要解決此問題,請確認憑證與負載平衡器位於相同區域。或者,在您的負載平衡器所在區域中請求新的憑證。
疑難排解「不受信任的憑證」錯誤
如果用戶端無法建立指向根 CA 的完整信任路徑,您就會收到「不受信任的憑證」錯誤。通常,此問題是因為憑證鏈中缺少中繼憑證,或者您使用了自我簽署憑證。
若要解決此問題,請完成下列步驟。
檢查是否缺少中繼憑證鏈
執行下列命令:
openssl s_client -showcerts -connect www.example.com:443
注意: 將 example 替換為您的網域。
在命令輸出中,檢查驗證傳回碼。如果傳回碼為 0,則表示憑證鏈完整且憑證有效。在此情況下,問題是由於自我簽署憑證或用戶端的信任存放區所造成。若要解決此問題,請繼續前往疑難排解自我簽署憑證。
如果代碼為 21,則表示缺少中繼鏈結。若要解決此問題,請重新上傳包含完整鏈結的憑證。鏈結只能依序包含通向根憑證的中繼憑證。鏈結必須以您的 CA 所產生的憑證開頭,並以 CA 根憑證結尾。不要包含您的公開金鑰憑證,也不要包含不屬於信任路徑的中繼憑證。通常,CA 會以正確排序的組合形式提供中繼憑證和根憑證,您可以直接使用。
上傳或更換您的憑證
為您的負載平衡器上傳新的 SSL/TLS 憑證。最佳做法是使用 ACM 匯入 SSL/TLS 憑證。不過,您也可以使用 IAM 上傳憑證。
然後,使用新憑證為您的負載平衡器設定 HTTPS 接聽程式。
注意: 請確認您在有效期間結束之前取代憑證。
疑難排解自我簽署憑證
預設情況下,用戶端會拒絕自我簽署憑證,因為這些憑證不是由受信任的 CA 所核發。如果您使用自我簽署憑證,可能會收到「自我簽署」或「簽發者憑證不明」的錯誤訊息。若要在生產環境中疑難排解此問題,請使用由公有 CA 所核發的憑證。在 ACM 中申請公有憑證,或 匯入由 CA 所核發的憑證。對於必須使用自我簽署憑證的測試環境,您可以將憑證新增到每個用戶端的信任存放區。
疑難排解單一負載平衡器中的多個網域
Classic Load Balancer 的每個接聽程式只能出示一個憑證。您無法在 Classic Load Balancer 中使用伺服器名稱指示 (SNI)。如果您託管多個網域,則負載平衡器可能會傳回與要求的主機不符的憑證。因此,用戶端會回報憑證不受信任或無效。
若要疑難排解此問題,請採取下列其中一個動作。
使用主體別名 (SAN) 將多個網域新增到單一憑證。請向您的 CA 確認 SAN 的數量上限。
在連接埠 443 上為負載平衡器設定 TCP 接聽程式。此組態會將連線直接傳遞至後端 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體,而不會終止連線。因此,您可以直接在執行個體上管理 HTTPS 流量。
移轉至 Application Load Balancer。最佳做法是針對 HTTPS 使用 Application Load Balancer,因為您可以為單一 HTTPS 接聽程式使用多個憑證。Application Load Balancer 會自動為每個網域提供正確的憑證。
確認憑證如預期般運作
重新執行下列命令,確認驗證傳回碼的輸出現在為 0:
openssl s_client -showcerts -connect www.example.com:443
注意: 將 example 替換為您的網域。
然後,在新的瀏覽器工作階段中載入網站,確認錯誤訊息已消失。
相關資訊
將憑證匯入至 ACM
適用於 Classic Load Balancer 的 SSL/TLS 憑證