API Gateway API のカスタムドメイン名を設定したところ、AWS Certificate Manager (ACM) の証明書が期限切れであることを示すエラーまたは、"invalid certificate" エラーが発生しました。
簡単な説明
「証明書の有効期限切れエラー」は、カスタムドメイン名の作成で使用した証明書の有効期限が切れている場合に発生します。
「無効な証明書エラー」は、証明書のコモンネーム (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 が含まれている必要があります。
- API Gateway のカスタムドメイン名を指す DNS レコードがあることを確認します。CNAME タイプまたは A タイプの DNS レコードが有効です。
注: 証明書にはサブジェクト代替名 (SAN) として含まれるカスタムドメインがないため、カスタムドメイン名は execute-api エンドポイントを直接指すことはできません。
設定例:
custom.example.com -> CNAME レコード -> d-yg54udirl4.execute-api.us-east-1.amazonaws.com
dig コマンドを次に示すようにカスタムドメインに実行すると、設定を確認できます。
$ dig custom.example.com
関連情報
API Gateway カスタムドメイン名での、DNS 解決または証明書の不一致に関するエラーを解決する方法を教えてください