CentOSでcertbotをcron実行するのに苦労した話

技術

無料SSL証明書発行の代表ツールとしてCertbotがあるが、cron実行する際に上手くいかなかった理由を解決できたので紹介。

以前紹介の記事

エラーログ

Could not choose appropriate plugin: The requested apache plugin does not appear to be installed
Failed to renew certificate ○○○○○○.com with error: The requested apache plugin does not appear to be installed

certbotは起動しているがapacheが存在しないと書いている。

pipでinstallする場合、以下で必要ライブラリを入手する。

pip install certbot-apache

certbotの更新については以下を実行する。

certbot renew --post-hook "systemctl restart httpd"

cronで実行する

今回生じた問題は、サーバーにログインして、手元で実行した際には上手くいくが、cronで実行した際に同様のエラーが生じており、パス設定が上手く設定できていなかったことが原因だった。

特にcertbot-apacheは実行ユーザのパスに格納されるため、crontab実行時にはパスを通す必要がある。

以下、crontab例

PATH=/root/.pyenv/shims:/root/.pyenv/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
0 3 * * * certbot renew --post-hook "systemctl restart httpd" >& /tmp/certbot.log

意外と扱っている技術ブログがあまりなかったのでcertbotを自動化する際の参考まで。

コメント

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