FreeBSD上でLetsencryptのSSL/TSL証明書を管理するにあたっての注意点などのメモ。
環境
- FreeBSD 14.1
- Python 3.11
certbotのインストール方法
FreeBSD上にcertbotをインストールする方法はいくつがあるが、ここでは次の二種類を比較する。
- portsからインストール
- pipでインストール
以前はportsからインストールしていた。が、現在はPython仮想環境上にpipでインストールする方法に変更している。
理由は、パッケージ管理がpipの方が楽なこと。
以前、certbotが依存しているパッケージの不具合により、そのパッケージのバージョンを戻さないとcertbotが動作しなくなってしまったことがある。このとき、portsから入れたものは旧バージョンに戻すのがとても大変だった。やればできないことはないが現実的ではない、という程度に大変だった。
かといって、その依存パッケージが正式に不具合対応されるまで待とうにも、数か月かかった記憶がある。長すぎる。その間、なにがしかのパッチを自力で当てるなりする以外、certbotを利用する方法がない。
一方で、pipならバージョン指定してロールバックするのもコマンド一発で簡単。
こうした事情から、pipインストールに移行した。
証明書の保存場所
certbotはインストール方法により、次のようにデフォルトの証明書保管ディレクトリが異なる。
- portsからインストール: /usr/local/etc/letsencrypt
- pipからインストール: /etc/letsencrypt
最初はこれに気づかず、設定pathを変更しそこねて、証明書の期限切れを起こしてしまった。確実に同じ場所にインストールさせるには、--config-dir オプションで指定しておくのがよい。