ACMにインポートで設定した証明書の更新方法を記載します。
ACMのWebコンソールから証明書を作成した場合は、自動的に証明書更新が行われるため、更新作業は必要ありません。
今回の手順はAWSCLIを用いて更新を行います。
1、再インポート方法
1-1、環境変数の設定
ACM捜査権限があるユーザーのアクセスキー・シークレットキーを設定します。
#export AWS_ACCESS_KEY_ID=AKIAIOSFODXXXXXXXXXX
#export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENXXXXXXXXXXXXXXXXXXX
export AWS_DEFAULT_REGION=ap-northeast-1
1-2、証明書の事前確認
更新作業前に、インポートされている証明書の状態を確認します。
#対象となる証明書のCertificateArnを確認
aws acm list-certificates
#証明書の詳細情報を確認
aws acm describe-certificate --certificate-arn \
"arn:aws:acm:ap-northeast-1:xxxxxxxxxxxx:certificate/xxxxxxxx-8ed5-4522-9e6b-xxxxxxxxxxxx"
※「NotBefore」「Serial」の設定値をメモする。
1-3、証明書の更新
以下のコマンドを実行して証明書を更新します。
コマンドのパラメータには以下の項目を設定します。
- –certificate → 証明書ファイルのパスを指定
- –certificate-chain → 中間証明書ファイルのパスを指定
- –private-key → 秘密鍵のファイルパスを指定
- –certificate-arn → ACMに登録されている証明書のARN
aws acm import-certificate \
--certificate file://Certificate.pem \
--certificate-chain file://CertificateChain.pem \
--private-key file://PrivateKey.pem \
--certificate-arn arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-12345678901
※「--certificate-arn」は上記で確認した「CertificateArn」を設定
※import-certificate コマンドが成功した場合、インポートされた証明書の Amazon リソースネーム (ARN) が返されます。
1-4、更新後の確認
コマンド実行後に、証明書が更新されている事を確認します。
更新に成功すると、コマンド出力内の「Serial」が、更新前の値から変更されます。また、「NotBefore」の値が増加しています。
#証明書の詳細情報を確認
aws acm describe-certificate --certificate-arn \
"arn:aws:acm:ap-northeast-1:xxxxxxxxxxxx:certificate/xxxxxxxx-8ed5-4522-9e6b-xxxxxxxxxxxx"
※「NotBefore」の設定値が増えていることを確認する
※「Serial」の設定値が変化していることを確認する
ACMで証明書を更新すると、ACMに紐づけられたリソース(ELB・CloudFrontなど)から配信される証明書は自動的に新しい証明書が使用されます。
CloudFrontの場合は、全Edgeの証明書か更新されるまで最大24時間かかる為、証明書の有効期限の1日前までACMの証明書を更新する必要があります。
2、更新対象のホスト検索方法
Route53などのDNSサーバに登録されているホスト情報を確認する。
※digコマンドなどで確認すると、ドメインに登録されたAレコードは分かるが、ELB名やCloudFront名の確認ができないため、DNSサーバの情報を確認する。
証明書確認コマンド
curl -v https://nakamurake-site.com -H 'Host:nakamurake-site.com' 2>&1 | grep -e "expire date:" -e"subject:"