これはAWS Certificate Manager (ACM)入門ハンズオン資料の一部です。
最初から続けて行っている場合「0.準備」の各項は作業不要です。第1項へ進んでください。
前提条件
ドメインを取得済みであること。
SES Incomingで admin@ドメイン名 宛の電子メイルが受信可能になっていること。
- 準備
=======
0.1. ドメイン名の変数への格納
変数へドメイン名を格納します。
ここでは example.tk とします。自分のドメイン名に読み替えてください。
DOMAINNAME="example.tk" && echo ${DOMAINNAME}
example.tk
0.2. 電子メイル受信用S3バケットの変数
S3バケット名を ドメイン名.sesincoming とします。
注:各自で違うバケット名を指定した場合はそれを指定してください。
SES_S3_BUCKET=${DOMAINNAME}.sesincoming
echo ${SES_S3_BUCKET}
example.tk.sesincoming
- ACMによるSSL証明書の作成
=================
SSL証明書をCloudFrontで使用する場合は us-east-1 リージョンに作成する必要があります。
ACMによるSSL証明書は作成したリージョンでのみ使用可能で、リージョンを跨ぐことはできませんから注意が必要です。
このため、以下の手順ではコマンドラインにリージョンを明示しています。
今回は example.tk と www.example.tk の両方でアクセスできるSSL証明書を作成します。
1.1. 証明書作成要求
CERT_ARN=`aws acm request-certificate --domain-name ${DOMAINNAME} \
--subject-alternative-names www.${DOMAINNAME} \
--region us-east-1 --output text` && echo ${CERT_ARN}
arn:aws:acm:us-east-1:777777777777:certificate/9eb6865a-63a3-48df-92c2-ae113c877b33
証明書のARNが取得されますが、まだ使用する事はできません。
ドメイン所有確認の電子メイルが自動送信されるので、これを確認します。
1.2. ドメイン所有確認
先ほど設定したS3バケットに電子メイルが届いているのでこれを取得します。
aws s3 ls ${SES_S3_BUCKET}
2016-10-12 17:10:36 10203 2kjfjklew90fjklfk4od0wpkgit9fk9jfdkdfi9z
2016-10-12 17:10:34 10170 4krul2vjrqniql7p11470po8fedf3ifjniegsc01
2016-10-12 16:55:30 645 AMAZON_SES_SETUP_NOTIFICATION
長い無機質な名前の物が届いた電子メイルです。
この名前をコピーペーストし MAIL_FILENAME 変数へ格納します。
(注:複数個存在する場合、「ファイルサイズの小さい方」を選択してください)
ファイルをローカルへコピーします。
MAIL_FILENAME="4krul2vjrqniql7p11470po8fedf3ifjniegsc01"
aws s3 cp s3://${SES_S3_BUCKET}/${MAIL_FILENAME} ./
download: s3://example.tk.sesincoming/4krul2vjrqniql7p11470po8fedf3ifjniegsc01 to ./4krul2vjrqniql7p11470po8fedf3ifjniegsc01
電子メイル本文中に認証用のURLがあるため、これを抽出します。
grep https ${MAIL_FILENAME} | grep context
https://certificates.amazon.com/approvals?code=8342b457-0f14-4234-b512-80488e3d2d12&context=0d7739c8-7045-4576-ac37-cf9829a3007d-75732d776573742d32
WebブラウザでこのURLを開き、 I Approve をクリックします。
Success! と表示されたら認証完了です。
1.3. 証明書の発行確認
証明書が発行されたか確認します。
aws acm describe-certificate --certificate-arn ${CERT_ARN} \
--region us-east-1 --query Certificate.Status
"ISSUED"
ISSUED と表示されれば発行済みです。
各種サービスで変数 CERT_ARN へ格納されたarnを指定すればSSL証明書を使用することができます。