AmazonLinux2 で lego を使い Route53 認証でサーバ証明書を取得する
以前に lego で Let's Encrypt の証明書を Route53 DNS 認証で取得するというメモを書きました。 lego を使えば certbot をインストールすること無く、Let's Encrypt の証明書を取得出来ますので非常に手軽です。 今回は AmazonLinux2 で lego を使い、Route53 を使った DNS 認証でサーバ証明書を取得する手順をメモしておきます。
前提条件¶
今回は以下の環境で作業しました。
- AWS EC2 上に作成した AmazonLinux2
IAM ポリシーの作成¶
以下の内容で IAM ポリシーを新規作成します。 <INSERT_YOUR_HOSTED_ZONE_ID_HERE>
部分は Route53 の管理画面で該当 DNS Zone 情報から取得します。 IAM ポリシーを作成したら、それを参照するロールを作成し、更にそれを参照するように EC2 インスタンスを設定します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
|
インストール¶
AmazonLinux2 上で lego をインストールします。
1 2 3 4 5 6 7 |
|
サーバ証明書を取得する¶
lego を使い、サーバ証明書を取得します。 IAM ポリシーが適切に設定され、EC2 インスタンスから該当 DNS Zone へ必要なアクセスが出来ていれば、じき終了するはずです。
1 2 3 4 5 6 |
|
サーバ証明書を更新する¶
サーバ証明書を更新するには renew
を指定します。 また、十分な有効期限が残っているサーバ証明書は無駄に更新処理を行わないよう、--days 30
オプションを指定し、「有効期限が 30 日未満の証明書のみ、更新処理を行う」ように設定します。 あとはこの処理を cron 等で定期実行させます。 --days
オプションは renew
よりも後ろに指定します。
1 2 3 4 5 6 7 |
|