Certificate Managerで証明書を発行する
料金
AWS Certificate Manager でプロビジョニングされたパブリック SSL/TLS 証明書は無料です。お支払いいただくのは、アプリケーションを実行するために作成した AWS リソースの料金のみです。
無料。
証明書を発行する
certmanager.yml
1 | AWSTemplateFormatVersion: "2010-09-09" |
parameters.json
証明書を発行するドメイン名を指定する。
1 | [ |
証明書発行を実行
リージョンはus-east-1
を指定する必要があるので注意する。
1 | $ aws cloudformation create-stack --stack-name tutorial-certmanager --template-body "file://./certmanager.yml" --parameters "file://./parameters.json" --region us-east-1 |
DNS認証はCloudformationで簡潔に表現できない
CertificateManagerでは検証保留中のまま。
CloudFormationはエラーにならず、CREATE_IN_PROGRESS
で止まっている。
イベントを確認するとDNS検証で止まっていることがわかる。
aws-cliを使ってDNSレコードを登録するシェルスクリプトを使用する
aws-cliを使ってCloudFormationの実行結果からDNS検証のために登録するDNSレコードを取得して、Route53に登録する。
aws cloudformation
を実行している箇所でオプションに--region us-east-1
を追加する。
1 | $ bash dns-validation.sh <ドメイン名> <スタック名> |
Route53上で登録されたDNS検証のためのに登録したレコードを確認できる。
保留中になっていた処理が継続され、証明書が発行される。
CertiticateManager上でも証明書発行済になる。
取得した証明書を使うためのARNを取得。
1 | $ aws cloudformation describe-stacks --region us-east-1 | jq '.Stacks[].Outputs[] | select( .OutputKey == "MyZoneCertificateID" ) | .OutputValue' |