はじめに
PodmanでLet's EncryptのSSL/TLSサーバ証明書を取得する方法は以下で説明しました。
webrootやmanualでの証明書更新は何かと手間なので(特にワイルドカード証明書を取得したい時にとても面倒なので)、dns-route53プラグインを使用して対応する方法を以下にまとめました。
なお、Podmanのインストールや各種初期設定についてはここで説明しません。上記記事をご参照ください。
手順
1.IAMユーザーの準備
route53を操作するためのIAMユーザーを作成します。
IAMポリシーの例(https://certbot-dns-route53.readthedocs.io/en/stable/ より)
{
"Version": "2012-10-17",
"Id": "certbot-dns-route53 sample policy",
"Statement": [
{
"Effect": "Allow",
"Action": [
"route53:ListHostedZones",
"route53:GetChange"
],
"Resource": [
"*"
]
},
{
"Effect" : "Allow",
"Action" : [
"route53:ChangeResourceRecordSets"
],
"Resource" : [
"arn:aws:route53:::hostedzone/YOURHOSTEDZONEID"
]
}
]
}
2.podmanでcertbotを実行する
次のコマンドを実行します。
# podman run -it --rm \
-e AWS_ACCESS_KEY_ID=<IAMユーザーのアクセスキーID> \
-e AWS_SECRET_ACCESS_KEY=<IAMユーザーのシークレットアクセスキー> \
-v /etc/letsencrypt:/etc/letsencrypt \
-v /var/www/html:/var/www/html certbot/dns-route53 certonly \
--dns-route53 \
-d example.org \
-d *.example.org \
--agree-tos \
--server https://acme-v02.api.letsencrypt.org/directory
補足
Docker/Podmanを利用したcertbotプラグインを利用した証明書発行・更新は、Route53以外にも対応しています。
対応プラグインについては以下をご参照ください。
参考