🦈
AWS R53 ドメイン Let’s Encrypt
みなさんこんにちは。
本日のお題
お名前ドットコムで取得した独自ドメインをAWSに登録して、そこにHTTPSの証明書を入手してみました。
媒体のVL確認
どうやら、Let’s Encryptの証明書を手に入れるには、LEGOというツールを利用するのがよさそうです。
見た感じ、2021/12/26時点では、4.5.3が一番新しいようなので、これを利用させていただくことにする。
たくさんありますが、Amazon LinuxのINTEL系CPUを利用しているEC2なので、lego_v4.5.3_linux_386.tar.gzを利用させていただこうと思います。
インストールというか展開
[root@meet opt]# mkdir -p /opt/lego
[root@meet opt]# cd /opt/lego
[root@meet lego]# wget https://github.com/go-acme/lego/releases/download/v4.5.3/lego_v4.5.3_linux_386.tar.gz
root@meet lego]# ls
lego_v4.5.3_linux_386.tar.gz
[root@meet lego]# tar zxf lego_v4.5.3_linux_386.tar.gz
[root@meet lego]# rm -rf lego_v4.5.3_linux_386.tar.gz
[root@meet lego]# ls
CHANGELOG.md lego LICENSE
[root@meet lego]# ll
total 32456
-rw-r--r-- 1 ssm-user docker 30424 Oct 6 10:35 CHANGELOG.md
-rwxr-xr-x 1 ssm-user docker 33198080 Oct 6 11:11 lego
-rw-r--r-- 1 ssm-user docker 1088 Oct 6 10:35 LICENSE
動作を確認する。
動いたようです。
[root@meet lego]# /opt/lego/lego -v
lego version 4.5.3 linux/386
[root@meet lego]#
AWS R53 の設定確認
ホストゾーンIDが必要なので、コピーしましょう。
AWS R53 へのアクセスロール作成
HOSTZONEのところは、「AWS R53 の設定確認」のホストゾーンIDの入力が必要。
作ったポリシーは、EC2のロールにアタッチしてください。
LEGO を実行して、R53に証明書を登録します。
[root@meet lego]# ls
CHANGELOG.md lego LICENSE
[root@meet lego]# ./lego --accept-tos --path=/home/yukkuri --email="yukkuri@gmail.com" --dns="route53" --domains="yukkuri.me" --domains="*.yukkuri.me" run
2021/12/25 17:45:06 No key found for account yukkuri@gmail.com. Generating a P256 key.
2021/12/25 17:45:06 Saved key to /home/yukkuri/accounts/acme-v02.api.letsencrypt.org/yukkuri@gmail.com/keys/yukkuri@gmail.com.key
2021/12/25 17:45:07 [INFO] acme: Registering account for yukkuri@gmail.com
!!!! HEADS UP !!!!
Your account credentials have been saved in your Let's Encrypt
configuration directory at "/home/yukkuri/accounts".
You should make a secure backup of this folder now. This
configuration directory will also contain certificates and
private keys obtained from Let's Encrypt so making regular
backups of this folder is ideal.
2021/12/25 17:45:07 [INFO] [*.yukkuri.me] acme: Obtaining bundled SAN certificate
2021/12/25 17:45:08 [INFO] [*.yukkuri.me] AuthURL: https://acme-v02.api.letsencrypt.org/acme/authz-v3/61928383100
2021/12/25 17:45:08 [INFO] [*.yukkuri.me] acme: use dns-01 solver
2021/12/25 17:45:08 [INFO] [*.yukkuri.me] acme: Preparing to solve DNS-01
2021/12/25 17:45:09 [INFO] Wait for route53 [timeout: 2m0s, interval: 4s]
2021/12/25 17:45:36 [INFO] [*.yukkuri.me] acme: Trying to solve DNS-01
2021/12/25 17:45:36 [INFO] [*.yukkuri.me] acme: Checking DNS record propagation using [10.0.10.2:53]
2021/12/25 17:45:40 [INFO] Wait for propagation [timeout: 2m0s, interval: 4s]
2021/12/25 17:45:47 [INFO] [*.yukkuri.me] The server validated our request
2021/12/25 17:45:47 [INFO] [*.yukkuri.me] acme: Cleaning DNS-01 challenge
2021/12/25 17:45:49 [INFO] Wait for route53 [timeout: 2m0s, interval: 4s]
2021/12/25 17:46:19 [INFO] [*.yukkuri.me] acme: Validations succeeded; requesting certificates
2021/12/25 17:46:21 [INFO] [*.yukkuri.me] Server responded with a certificate.
[root@meet lego]#
ファイルができていることを確認
このファイルをWEBサーバーなどで利用する。
[root@meet certificates]# pwd
/home/yukkuri/certificates
[root@meet certificates]# ls
yukkuri.me.crt yukkuri.me.issuer.crt yukkuri.me.json yukkuri.me.key
[root@meet certificates]#
証明書の更新の場合
試しに実行してみましたが、残期間が30日を切らないと入力できないようです。
[root@meet lego]# ./lego --accept-tos --path=/home/yukkuri --email="yukkuri@gmail.com" --dns="route53" --domains="*.yukkuri.me" renew
今回の所要時間
不慣れなこともあったので、調査も含めて4時間ぐらいですかね。
OSインストールや、インフラ初期設定を考えると、短いといえば短い時間です。
Discussion