私はLetsEncryptのcertbotからSSL証明書の更新を自動化しています。実際の更新は機能していますが、更新された証明書が読み込まれるようにサービスの再起動を自動化する必要があります。私はletsencrypt renew
のために複数の--renew-hook
パラメータをcronjob内で使用できるかどうか疑問に思っていましたか?LetsEncrypt certbot複数の更新フック
証明書の更新時にサービスを再起動する方法を自動化するにはどうすればよいですか?
私はLetsEncryptのcertbotからSSL証明書の更新を自動化しています。実際の更新は機能していますが、更新された証明書が読み込まれるようにサービスの再起動を自動化する必要があります。私はletsencrypt renew
のために複数の--renew-hook
パラメータをcronjob内で使用できるかどうか疑問に思っていましたか?LetsEncrypt certbot複数の更新フック
証明書の更新時にサービスを再起動する方法を自動化するにはどうすればよいですか?
はい、複数の--renew-hook文を使用できます。また、-qフラグを使用すると、実際に更新が行われるまで空白の通知が電子メールで送信されます。また、更新が発生するまでは、サービスを再起動しません。また、ログファイルを必要に応じて電子メールに添付します。
毎日bashを実行するcronがあります。私はbash(certbotrenew.sh)インサイド
は、単純にこの
#!/bin/bash
cd /opt/certbot
sudo ./certbot-auto renew --renew-hook "service postfix reload" --renew-hook "service dovecot restart" --renew-hook "service apache2 reload" -q >> /var/log/certbot-renew.log | mail -s "CERTBOT Renewals" [email protected] < /var/log/certbot-renew.log
exit 0
で、私のcronが私はちょうどいつも、私は関係なく、何も起こらなかった場合の電子メールを送信し、なぜ一部の人々が疑問
00 20 * * 1 /bin/certbotrenew.sh
です私の毎日のcronsが動作していることを知りたい。
私はCertBotのUbuntuの16.04でフレッシュインストールから見たものから、それはcronジョブを作成します。
# /etc/cron.d/certbot: crontab entries for the certbot package
#
# Upstream recommends attempting renewal twice a day
#
# Eventually, this will be an opportunity to validate certificates haven't been revoked, etc. Renewal will only occur if expiration is within
# 30 days.
SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
0 */12 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(3600))' && certbot -q renew --pre-hook
'/bin/run-parts /etc/letsencrypt/pre-hook.d/' --post-hook '/bin/run-parts /etc/letsencrypt/post-hook.d/' --renew-hook '/bin/run-parts
/etc/letsencrypt/renew-hook.d/'
だから、あなただけ追加する必要があり/etc/letsencrypt/renew-hook.d/
を含め、多くのディレクトリにrun-parts
を実行それらのフックディレクトリのいずれかにある実行可能ファイル(必要なものを選んでください)。注意点として
#!/bin/bash
/etc/init.d/nginx restart
:例として
は、私のrenew-hook.d
に私は次の内容のファイルを作成したrestart-nginx
あなたは--test
オプションを使用してrun-parts
によって呼び出されますどのようなファイルを知ることができます。 (例run-parts --test /etc/letsencrypt/renew-hook.d/
彼らは実際には、もはやそれらのラン部分のパラメータをもはや含まないように、certbotのcronジョブを変更しました。これを実現するための推奨される方法は、 '/ etc/letsencrypt/cli.ini'ファイルを作成し、そこにフックパラメータを指定することです。 https://github.com/certbot/certbot/issues/1706#issuecomment-302774426 – Drew
することもできますセットのフック(このようなファイル/etc/letsencrypt/cli.ini
(see documentation)のグローバル・オプションなどの他のオプションあなたが好きな場合):
# Global config for letsencrypt runs
#
# Note that these options apply automatically to all use of Certbot for
# obtaining or renewing certificates, so options specific to a single
# certificate on a system with several certificates should not be placed
# here.
renew-hook = service postfix reload
post-hook = service nginx reload
あなたが最初にほとんどのシステム上のファイルを作成する必要があります。 Letsencryptはなしで来る。
あなたがグローバルに行くのが好きではありません場合は、また、すべてのrenewal
フォルダに証明書の特定のバージョンを作成することができます。これは、ため、既定のパッケージマネージャのように見えます
Ubuntu 16.04には '--renew-hook'引数を受け入れない旧バージョンのCertbotが付属しています。 –
はい、レポにはLet's Encryptの非常に古いバージョンがあります。これは去年もcertbotに名前が変更されました。レポのバージョンをアンインストールし、単に 'mkdir/opt/certbot'と' cd/opt/certbot'と 'sudo wget https:// dl.eff.org/certbot-auto'を実行するだけで証明書を実行することができますそこからの--autoコマンドライン。 Ubuntuのリポジトリのバージョンが正しいとメモリが私に役立つならば、let's暗号化のv0.4です。 Certbotは現在0.11です。 – MitchellK
@MitchellK - 毎日のcronメールを受け取るのではなく、https://IsItWorking.info(私)のようなcronレポートサービスについてはどうでしょうか。 cronスクリプトは、正常に実行されるたびにチェックインすることができます。それがチェックインしない場合、サービスはあなたに警告します。 (おそらく電子メールに加えて) –