概要
インターネットセキュリティの重要性が日に日に増していく中、SSL/TLS サーバー証明書の最大有効期間が 2029 年までに段階的に短縮されることが決定しました。
この短命化の波において、今回は「Certbot」というツールに注目し、証明書取得・更新の自動化について記事にさせていただこうと思います。

Certbotは、ACME(Automated Certificate Management Environment)プロトコルを利用して証明書の自動取得・更新を行うためのクライアントツールです。
また、取得した証明書を指定のサーバーへ配置、そしてサービスの再起動(Reload)までも自動化することが可能です。
構成
本記事で構築する環境および証明書発行・設定反映までの流れは図の通りです。

本記事において、Certbotサーバーは図の通り、WEBサーバーなどの証明書を使わせたいサーバーとは別に構築します。
Certbotは証明書を自身のサーバーで取得し、その後各サーバーへ配置させる構成となります。
Certbotサーバの構築手順
構築手順を大きく分けると下記の4ステップとなります。
- Certbotのインストール
- ACME-DNSのインストール・設定
- 認証スクリプトの用意
- デプロイスクリプトの用意
ACME-DNSなど初出のワードが出てきていますが、各ステップの手順にて説明させていただきます。
Certbotのインストール
まずは、Certbotをインストールするための基盤(Snap環境)をセットアップ。
# EPELリポジトリが必要な場合(RHEL/Alma/Rockyなど)
sudo dnf install epel-release -y
# Snapdのインストール
sudo dnf install snapd -y
# Systemdソケットの有効化と起動
sudo systemctl enable --now snapd.socket
# シンボリックリンク作成
sudo ln -s /var/lib/snapd/snap /snap
# Snap環境自体のコアパッケージを最新にします。
sudo snap install core
sudo snap refresh core続いてsnap版のCertbotをインストール。
# Snap版Certbotのインストール
sudo snap install --classic certbot
# certbotコマンドのシンボリックリンクを作成
sudo ln -s /snap/bin/certbot /usr/bin/certbot
# バージョン確認
certbot --versionなお、snap版のCertbotを取得している理由としては、
Certbotの開発元であるEFF(Electronic Frontier Foundation)が、多くのLinuxディストリビューションにおいてsnap版を利用したインストールを公式に推奨しているからです。
https://eff-certbot.readthedocs.io/en/latest/install.html
続いて、「2. ACME-DNSのインストール・設定」のステップとなりますが、
次回の記事にて解説させていただきます。


