疑難排解程序取決於使用的 SSL 憑證類型。
排解自行管理的安全資料傳輸層 (SSL) 憑證問題
本指南說明如何排解自行管理的 SSL 憑證設定問題。
無法剖析憑證
Trusted Cloud 需要 PEM 格式的憑證。如果憑證是 PEM 格式,請檢查以下事項:
您可以透過下列 OpenSSL 指令驗證憑證,並將 CERTIFICATE_FILE
替換為憑證檔案的路徑:
openssl x509 -in CERTIFICATE_FILE -text -noout
如果 OpenSSL 無法剖析憑證,請按照下列步驟操作:
- 請向 CA 尋求協助。
- 建立新的私密金鑰和憑證。
缺少通用名稱或主體別名
Trusted Cloud 規定憑證必須具備共用名稱 (CN
) 或主體別名 (SAN
) 屬性。詳情請參閱「建立 CSR」。
如果缺少這兩個屬性,當您嘗試建立自行管理的憑證時, Trusted Cloud 會顯示類似下列的錯誤訊息:
ERROR: (gcloud.compute.ssl-certificates.create) Could not fetch resource:
- The SSL certificate is missing a Common Name(CN) or Subject Alternative
Name(SAN).
無法剖析私密金鑰
Trusted Cloud 需要符合私密金鑰標準的 PEM 格式私密金鑰。
您可以使用下列 OpenSSL 指令驗證私密金鑰,並將 PRIVATE_KEY_FILE
替換為私密金鑰的路徑:
openssl rsa -in PRIVATE_KEY_FILE -check
如果出現下列回應,表示私密金鑰有問題:
unable to load Private Key
Expecting: ANY PRIVATE KEY
RSA key error: n does not equal p q
RSA key error: d e not congruent to 1
RSA key error: dmp1 not congruent to d
RSA key error: dmq1 not congruent to d
RSA key error: iqmp not inverse of q
如要修正問題,請建立新的私密金鑰和憑證。
含有通關密語的私密金鑰
如果 OpenSSL 提示您輸入通關密語,您必須先從私密金鑰中移除通關密語,才能搭配 Trusted Cloud使用。您可以使用下列 OpenSSL 指令:
openssl rsa -in PRIVATE_KEY_FILE \ -out REPLACEMENT_PRIVATE_KEY_FILE
將預留位置替換為有效值:
PRIVATE_KEY_FILE
:以通關密語保護的私密金鑰路徑REPLACEMENT_PRIVATE_KEY_FILE
:您要儲存純文字私密金鑰副本的路徑
即將到期的中繼憑證
如果中繼憑證在伺服器 (葉) 憑證到期前過期,可能表示您的 CA 未遵循最佳做法。
中繼憑證過期時,Trusted Cloud 中使用的葉子憑證可能會失效。這取決於 SSL 用戶端,如下所示:
- 部分 SSL 用戶端只會查看葉子憑證的到期時間,並忽略過期的中繼憑證。
- 部分 SSL 用戶端會將含有任何過期中繼憑證的鏈結視為無效,並顯示警告。
如何解決這個問題:
- 等待 CA 切換至新的中繼憑證。
- 向他們要求新憑證。
- 使用新金鑰重新上傳新憑證。
您的 CA 也可能允許中繼憑證的交叉簽署。請與 CA 確認。
RSA 公開指數過大
如果 RSA 公開指數大於 65537,就會顯示以下錯誤訊息。請務必使用 65537
,如 RFC 4871 所述。
ERROR: (gcloud.compute.ssl-certificates.create) Could not fetch resource:
- The RSA public exponent is too large.
從目標 Proxy 移除 SSL 憑證
下列步驟說明如何移除附加至目標 HTTPS Proxy 的單一 SSL 憑證:
將 target-https-proxy 匯出至暫存檔案。
gcloud compute target-https-proxies export TARGET_PROXY_NAME > /tmp/proxy
編輯
/tmp/proxy
檔案並移除下列幾行:sslCertificates: - https://www.googleapis.com/compute/v1/projects/...
匯入
/tmp/proxy
檔案。gcloud compute target-https-proxies import TARGET_PROXY_NAME \ --source=/tmp/proxy
選用:刪除 SSL 憑證。
gcloud compute ssl-certificates delete SSL_CERT_NAME
更改下列內容:
TARGET_PROXY_NAME
:目標 HTTPS 代理程式資源的名稱。SSL_CERT_NAME
:SSL 憑證的名稱。