我為 API Gateway API 設定自訂網域名稱。我收到 AWS Certificate Manager (ACM) 憑證過期或「無效憑證」的錯誤。
簡短說明
當用來建立自訂網域名稱的憑證過期時,會發生「憑證已過期錯誤」。
由於憑證中的通用名稱 (CN) 或主體名稱不相符,才會發生「無效憑證錯誤」。
解決方法
已過期的 ACM 憑證
如果您的憑證已過期,您可能會收到類似的下列錯誤:"SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED]"
若要檢查憑證是否過期,請執行類似下列項目的 OpenSSL 命令 s_client:
openssl s_client -servername <custom domain name> -connect <custom domain name>:443 2>/dev/null | openssl x509 -noout -dates
若要續約憑證,請參閱 AWS Certificate Manager 中的受管憑證續約。
若要避免憑證過期,請參閱如何在 ACM 中監控匯入憑證過期。
不相符的 ACM 憑證
如果您的憑證具有不相符的 CN 或主體名稱,您會收到類似的下列錯誤: "ERR_CERT_COMMON_NAME_INVALID"
若要解決錯誤,請確認下列設定:
- 用於建立自訂網域名稱的憑證存在於 ACM 中。
- 憑證主體名稱或 CN 包含自訂網域名稱。例如,如果自訂網域名稱是 custom.example.com,則主體名稱或 CN 必須包含 custom.example.com 或\ *example.com。
- 確認有 DNS 記錄指向 API Gateway 自訂網域名稱。DNS 記錄可以是 CNAME 或 A 類型。
**注意:**自訂網域名稱無法直接指向 execute-api 端點,因為憑證沒有列為主體替代名稱 (SAN) 的自訂網域。
範例組態:
custom.example.com -> CNAME record -> d-yg54udirl4.execute-api.us-east-1.amazonaws.com
您可以透過在類似下列項目的自訂網域上執行 dig 指令,檢查組態:
$ dig custom.example.com
相關資訊
如何解決 API Gateway 自訂網域名稱的 DNS 解析或憑證不符錯誤?