如何為我的 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
若要續約憑證,請參閱 ACM 憑證的受管續約。
若要避免憑證過期,請參閱如何在 ACM 中監控已匯入的憑證是否過期。
不相符的 ACM 憑證
如果您的憑證有不相符的 CN 或主體名稱,您可能會收到錯誤訊息,如下所示:
"ERR_CERT_COMMON_NAME_INVALID"
確認以下設定:
- 用來建立自訂網域名稱的憑證存在於 ACM 中。
- 憑證主體名稱或 CN 包含自訂網域名稱。例如,如果自訂網域名稱是 custom.example.com,則主體名稱或 CN 必須包含 custom.example.com 或 *example.com。
- 請確定有指向 API Gateway 自訂網域名稱的 DNS 記錄。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 解析或憑證不符錯誤?