Route53を使用してLet’s EncryptでSSL証明書の取得を行う


こんにちは。森です。

以前、Route53を使用してLet’s Encryptで発行されるSSL証明書の取得を行ったので備忘録的に記載をしていきます。
通常、Let’s Encryptで発行されたSSL証明書を取得する場合や更新には80番 or 443番ポートをアクセス可能にしておく必要があると思いますが、何かしらの事情でそれらのポートを開けることが出来ない方には参考になる記事かと思います。

今回は下記環境で行ってみました。

  • 環境

AmazonLinux2

詳細な手順な手順については下記を見てみてください。

詳細な手順

手順1. 使用できるPythonのバージョン確認

今回は、python3.8がインストールできることが下記でわかる。

手順2. Pythonインストールと確認

インストール

バージョンの確認

手順3. aliasの設定と確認

aliasの設定

.bashrcの確認

バージョンの確認

手順4. pipenvのインストール

手順5. Certbotのインストール

手順6. certbot-dns-route53のインストール

手順7. pipのインストール済みのパッケージ一覧を確認

下記のように certbotcertbot-dns-route53 が入っていれば問題ない。

手順8. IAMロールとIAMポリシーの作成

IAMロールの作成

適当に作成して構いません。

IAMポリシーの作成

ポリシーは下記のように作成して頂ければ問題ないかと思います。
xxxxxxIDという部分のみ自分が更新するドメインのホストゾーンIDを記載してください。

手順9. SSL証明書の発行

今回は test-ssl.net というSSL証明書を発行する手順で記載しております。

上手くいけば下記のような結果が出力されます。

手順10. SSL証明書の確認

発行された場所に行くと問題なく下記のような証明書があれば成功です。

あとはCronで定期的に下記コマンドで実行してあげれば自動更新が出来ると思います。

有効期限が来ていない状態で更新したい場合

手順1から手順10まで行えばSSL証明書が発行されると思います。
もし発行されてからちゃんと更新されるか心配という方は下記コマンドを使用すれば有効期限が来ていなくても無理やり更新が出来ますので試してみてください。

補足

手順1から手順8まで作成するCloudFormationのテンプレートを下記に記載しておきますのでよかったら使用してみてください。※手順7は除く。

最後に

いかがだったでしょうか。
なかなか使用する機会はないかもしれませんが、Route53を使用してLet’s Encryptで発行されるSSL証明書の取得することが出来るという事が分かりましたね。
この記事が誰かの助けになれば幸いです。

それでは。