zerossl-botの修正について
[主題]
現在公開中のzerossl-botをmacOSのlaunchdで使用すると、エラーで証明書が取得できない問題を解決したい。
[背景]
筆者は、この記事で説明している通り、自宅サーバーのSSL証明書更新にzerossl-botを用いている。ところが、現在公開中のバージョンを、macOSのlaunchdで使用すると、You have to install certbot
というエラーメッセージとともにスクリプトが終了してしまい、証明書が取得できない。
本稿では、この問題を解決する。
[環境]
参考までに、筆者の環境を記載しておく
MacBook Air 2023 15.3inch(Apple Silicon Mac, M2)
macOS Tahoe 26.0.1
Xcode 26.0.1
CommandLine Tools for Xcode 16.4.0.0.1
MacBook Pro 2018 15.4inch(インテルMac)
macOS Monterey 12.7.6
CommandLine Tools for Xcode 14.2.0.0.1
[発生原因]
macOSのlaunchdで用いるシェルスクリプトでは、パスを絶対パスで記述する必要がある。しかし、現在公開中ののコードには、
という記述がある。which certbot
コードをそのまま実行すれば問題ないが、macOSのlaunchdに登録するプロパティリストで用いると、エラーになる。
[対策]
以下の手順で取得したコード(README記載の手順にはwgetが必要。wgetは標準のmacOSには含まれない)に修正を加えて運用する。変更をdiff形式で示す。
-
get-zerosslbot-shの取得
curl -LO https://github.com/zerossl/zerossl-bot/raw/master/get-zerosslbot.sh
-
zerossl-botの取得
chmod +x get-zerosslbot.sh sudo bash get-zerosslbot.sh
-
zerossl-botの修正
diff -u a/zerossl-bot b/zerossl-bot --- a/zerossl-bot 2025-10-21 01:45:37 +++ b/zerossl-bot 2025-10-21 02:31:09 @@ -1,10 +1,10 @@ #!/bin/bash -if [ ! -x "$(which certbot)" ]; then - echo You have to install certbot - exit 1 -fi +#if [ ! -x "$(which certbot)" ]; then +# echo You have to install certbot +# exit 1 +#fi CERTBOT_ARGS=() @@ -54,4 +54,4 @@ fi printf '%s ' certbot "${CERTBOT_ARGS[@]}"; echo -certbot "${CERTBOT_ARGS[@]}" +/usr/local/bin/certbot "${CERTBOT_ARGS[@]}"
-
具体的な運用手順は、この記事を参照されたい。
以上。
この投稿へのトラックバック
トラックバックはありません。
- トラックバック URL
この投稿へのコメント