Let’s Encrypt のワイルドカード証明書を ConoHa API で自動更新する

conoha Linux
スポンサーリンク

Certbot を使って Let' Encrypt の SSL 証明書を取得するには、外部に公開された Web サーバーか DNS サーバーで認証する必要があります。

ConoHa VPS に検証用として RHEL9 の設定を進めているのですが、現状では Web サーバーを外部には公開しておらず、管理者の IP アドレスからしかアクセスできない設定になっています。

Certbot の DNS 認証を使えば、非公開の Web サーバー用の SSL 証明書を取得でき、ワイルドカード証明書も取得できるので一石二鳥ですが、更新のたびに DNS を手動で書き換えるのは手間になります。

探してみたところ、ConoHa API を使って自動で TXT レコードを書き換えてくれるスクリプトがありましたので、これを使った設定方法を記録しておきます。

Let's Encrypt の証明書を取得

Certbot のインストール

EPEL リポジトリから Certbot をインストールします。

※EPEL リポジトリが未導入の場合は下記を参考に入れてください。

letsencrypt-dns-conoha のセットアップ

Let's Encrypt ワイルドカード自動更新(ConoHa)
はじめに 2回に渡りLet’s EncryptのSSL証明書を試してきましたが、今回はワイルドカー…

ConoHa API を介して認証用コードを自動的に設定してくれるスクリプトなのですが、オリジナルでは tyo2 リージョンに対応していなかったので、フォークされたものを使用しました。(https://github.com/tsukumijima/letsencrypt-dns-conoha

git コマンドで一式をダウンロードします。

Let's Encrypt ディレクトリ内で完結させたいので、/etc/letsencrypt にファイル一式を移動します。

設定ファイル(.env)をリネームします。

ConoHa コントロールパネルから API のタブに移動し、API のユーザーネームとパスワード、テナント ID を確認します。また、エンドポイントの URL からリージョン(tyo1 か tyo2)もあわせて確認します。

ConoHa コントロールパネルの API 画面

※API ユーザーが設定されていない場合は作成してください。パスワードを設定するだけで、ユーザー名は自動的に割り当てられます。

上記の内容を、letsencrypt-dns-conoha の設定ファイルに記載します。

また、スクリプト内で jq コマンドを使用しますので、インストールしておきます。

以上で、準備は完了しました。

SSL 証明書の取得

実際に SSL 証明書を取得します。

このとき指定したオプションは /etc/letsencrypt/renewal/example.com.conf に保存され、更新(certbot renew)時にも自動的に指定されます。

Web サーバーの設定

続いて Web サーバーの設定をしていきます。他にも設定を入れましたが、SSL 証明書を読み込む部分だけ抜粋します。

Apache のインストール

SSL の設定ファイルに、先ほど取得した証明書を指定します。

Apache の起動と自動起動の設定します。

証明書の自動更新

Cron で月に一度、更新を試みるように設定します。

更新後に Web サーバーの証明書を反映するため、post-hook でリロードさせます。

OpenLiteSpeed の場合

実行権限を付与します。

以上で Let's Encrypt のワイルドカード SSL 証明書を自動運用する事ができるようになりました。

コメント

タイトルとURLをコピーしました