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 タイプのどちらでもかまいません。
注意: 証明書にサブジェクト代替名 (SAN) としてリストされているカスタムドメインがないため、カスタムドメイン名は execute-api エンドポイントを直接指すことはできません。
設定の例:
custom.example.com -> CNAME record -> d-yg54udirl4.execute-api.us-east-1.amazonaws.com
以下のようなカスタムドメインで dig コマンドを実行することで、設定を確認できます。
$ dig custom.example.com
関連情報
API Gateway カスタムドメイン名の DNS 解決エラーまたは証明書不一致エラーを解決する方法を教えてください。