simp_leによるLet’s Encryptの証明書の取得

概要

先日,CertbotによるLet’s Encryptの証明書の取得方法を記した。今回は,ACMEクライアントとしてCertbotとは異なるsimp_leを使った方法を記す。

当初Let’s Encryptでの証明書の発行への挑戦時には,Certbotをユーザー権限で実行できることに気づかなかった。そのため,root権限以外での実行に公式サイトで推奨されていたクライアントのsimp_leでの証明書の発行を行っていた。

なお,simp_leと同じく推奨されていたacme-nosudoは手順の中でWebサーバーと通信する際に,管理者権限が必要だったため断念した。

simp_leでの発行ができ,手順の整理中に気になって試したところ,Certbotでも発行できた。結果として,simp_leはワイルドカード証明書の発行に対応しておらず,Certbotの下位互換になるのでCertbotを使ったほうがいい。

ただ,せっかく調べたのでsimp_leでの証明書の発行手順も記す。

以下のサイトを参考にした。

simp_leの情報源
インストール

まず,simp_leをインストールする。

simp_leもCertbotと同じくPython3で動作するので,事前にPython3をインストールしておく。

Python3を用意できたら,pip3を使い以下のコマンドでインストールする。

pip3 install --user git+https://github.com/zenhack/simp_le@0.18.1#egg=simp_le

今回は0.18.1をインストールした。

証明書の取得

インストールできたので,コマンドを実行して証明書を取得する。

mkdir -p ~/.local/etc/simp-le
cd ~/.local/etc/simp_le
simp_le -f account_key.json -f account_reg.json \
-f fullchain.pem -f key.pem \ --email contact@example.com -d aws.senooken.cf:/var/www/html

-fで指定しているファイルはコマンド実行時に勝手に生成される。

重要なのは,3行目の--email-dだ。これらのオプションで,メールアドレスとドメイン名・DocumentRootを指定する。

コマンドの実行に成功すると,証明書と秘密鍵がそれぞれfullchain.pemkey.pemに生成される。Webサーバーの設定でこれらを参照すればいい。

証明書の更新

Certbotと異なり,simp_leでの証明書の更新は同一のコマンドで行う。

Certbotと同じく以下のコマンドでcrontabに1か月おきに実行されるように登録しておけばいいだろう。

crontab <<-"EOT"
* * * */1 * (cd /home/senooken/.local/etc/simp_le; simp_le -f account_key.json -f account_reg.json -f fullchain.pem -f key.pem --email contact@example.com -d aws.senooken.cf:/var/www/html >/dev/null)
EOT

標準出力が表示されないように,コマンドの末尾に>/dev/nullだけを追加した。

最後に,cronを再起動する。

sudo systemctl restart cron
結論

simp_leによるLet’s Encryptの証明書の取得方法を記した。

今回は,Certbotをユーザー権限で使えないという勘違いからsimp_leの使い方を調査した。

simp_leのほうが作りがシンプルになっている利点があるが,ワイルドカード証明書に対応していないという欠点がある。やはり,基本的には公式が推奨しているCertbotを使ったほうがいいだろう。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です