certbot
--webroot
プラグインとcertbot renew
を使用して証明書を更新していますが、機能しますが、httpd
が証明書をキャッシュしているようで、「 「更新されました。
httpd
が証明書をリロードするためのシグナルはありますか?
pSダウンタイムを避けるため、httpd
を再起動しないことをお勧めします。
httpd
を取得して新しい証明書を確認するには、「 グレースフルリスタート 」を実行するように要求する必要があります。ドキュメントから:
USR1または優雅なシグナルにより、親プロセスは、現在の要求の後で終了するように(または、何も処理していない場合はすぐに終了するように)親プロセスに子供に通知します。親は構成ファイルを再度読み取り、ログファイルを再度開きます。各子が消滅すると、親は新しい世代の構成の子に置き換えられ、新しい要求の処理がすぐに開始されます。
そのため、適切な再起動によってダウンタイムが発生することはありません。
Letsencrypt/certbotに適切な再起動をトリガーさせるには、--post-hook
引数。証明書の更新が試みられた場合、この引数はコマンドを1回実行します。 docs から:
証明書の取得/更新を試みた後にシェルで実行されるコマンド。更新された証明書のデプロイ、または--pre-hookによって停止されたサーバーの再起動に使用できます。これは、証明書を取得または更新しようとした場合にのみ実行されます。 (デフォルト:なし)
だからあなたが望むコマンドは
certbot renew --post-hook "apachectl graceful"
または、cronジョブから実行する場合
certbot renew --quiet --post-hook "apachectl graceful"
(この回答について助けてくれた@RustyXに感謝します)