複数のサブドメインをHTTPS対応にする際はワイルドカード証明書を使うと便利です。AWS Certificate Manager(ACM)を使ってワイルドカード証明書を取得し、AWSサービスで活用する方法をAWS CLIを使った操作例も含めて紹介します。
ワイルドカード証明書とは?
ワイルドカード証明書は、特定のドメインとその1階層のサブドメイン全てを1つの証明書で保護できるSSL/TLS証明書です。
特徴
- 1つの証明書で以下を保護可能:
example.com
www.example.com
api.example.com
blog.example.com
- ただし、2階層以上のサブドメイン(例:
sub.api.example.com
)は対象外。
AWSでのワイルドカード証明書取得方法
AWSでは、AWS Certificate Manager(ACM)を利用してワイルドカード証明書を簡単に取得できます。
AWS ACMを使うメリット
- 無料: AWS内で利用する場合は無料で提供。
- 自動更新: 証明書の更新を自動的に行い、運用負荷を軽減。
- 簡単な統合: AWSサービス(ALB、CloudFront、API Gatewayなど)とシームレスに連携可能。
AWS CLIでの手順
1. 証明書のリクエスト
以下のコマンドを実行し、ワイルドカード証明書をリクエストします:
aws acm request-certificate \
--domain-name example.com \
--subject-alternative-names "*.example.com" \
--validation-method DNS
2. DNS認証の設定
リクエスト実行後、以下のコマンドで証明書情報が取得できます。
aws acm describe-certificate --certificate-arn ${CERTIFICATE_ARN}
AWSからは以下のような情報を含んだレスポンスが返ってきます。
{
"ResourceRecord": {
"Name": "_abcde.example.com.",
"Type": "CNAME",
"Value": "_xyz.acm-validations.aws."
}
}
このResourceRecord
情報を利用して、ドメインのDNS設定を行います。具体的には、DNSプロバイダー(Route 53や外部プロバイダー)の管理画面で以下を設定します:
- Name:
_abcde.example.com.
- Type:
CNAME
- Value:
_xyz.acm-validations.aws.
3. 検証の完了
DNS設定が反映されると、AWSが所有権を確認して証明書が発行されます。このプロセスは通常数分から数時間で完了します。
4. 証明書の確認
DNS検証が完了すると、証明書のステータスがPENDING_VALIDATIONからISSUEDに変更されます。
aws acm describe-certificate --certificate-arn ${CERTIFICATE_ARN}