Snap版Certbotを使用している場合、Certbotの自動更新プロセスはSnapのサービス管理によってハンドルされるため、certbot renewコマンドを直接編集する代わりに、この方法でフックを設定します。
Snap版Certbotが更新を行う際、/etc/letsencrypt/renewal-hooks/deploy/ディレクトリ内のスクリプトは自動的に実行されます。
Snap版Certbotでサービスの再起動を自動化するには、以下の手順を踏みます:
フックスクリプトの作成
Nginx、Postfix、Dovecotまたは他のサービスを再起動するためのスクリプトを作成します。例えば、/etc/letsencrypt/renewal-hooks/deploy/restart-services.shというパスにスクリプトを作成し、以下の内容を記述します。
#!/bin/bash
systemctl restart nginx
systemctl restart postfix
systemctl restart dovecot
このスクリプトに実行権限を与えます。
chmod +x /etc/letsencrypt/renewal-hooks/deploy/restart-services.sh
スクリプトのテスト: スクリプトが正しく動作することを確認します。
/etc/letsencrypt/renewal-hooks/deploy/restart-services.sh
自動更新の確認
snap.certbot.renew.timerが有効になっていることを確認します。これは以下のコマンドで行えます。
systemctl list-timers | grep certbot
このコマンドでsnap.certbot.renew.timerがリストに表示され、次の実行時刻が設定されていることを確認します。
これにより、証明書が更新された後にNginxやPostfixなどのサービスが再起動され、新しい証明書が正しく使用されるようになります。