ソースの表示以前のリビジョンバックリンク全て展開する/折り畳む文書の先頭へ Share via Share via... Twitter LinkedIn Facebook Pinterest Telegram WhatsApp Yammer Reddit Teams最近の変更Send via e-Mail印刷パーマリンク × « 空き容量0でZFSが壊れた?Input/Output errorが発生→再起動で直った SupermicroマザボのファンをIPMIで制御する » certbot renewでApacheがCPU 100%に張り付くでござるの巻き SSL証明書の期限が切れた状態でcertbot renewを行うと、ApacheプロセスのCPU利用率が100%となりハング状態になるっぽい。apachectlで止めようとしても(弊鯖はご存じのとおりFreeBSDなのでservice apache24 stopだが)、応答が返ってこずkillせざるを得ないという状況。環境は以下のとおり。 FreeBSD 13.0-RELEASE-p4 Apache 2.4.51 certbot 1.21.0 certbot-apache 1.21.0 Python 3.8.12 webrootモードで運用 weekly_certbot_enableでもって週次で証明書の確認&更新が行われるはずなのに、なんで切れてるの?そもそも期限切れになったからと言って、なんでhttpdがハング状態になるの?と疑問は尽きないのだが、ひとまず脇に置いといて、この状況に陥ったらcertbot certonlyを使って手動で証明書を更新してやる。 # certbot certonly --webroot -w /path/to/document_root -d example.com 証明書更新後、certbot renewでhttpdが暴走しないことを確認する(renewが正常に終われば暴走はしてない。) それにしても原因は何なんだろうなー。以前、同様の状況が発生した時は、apacheやモジュールの更新を行っていたのでバイナリ間の何らかの不整合くらいで流したが、たぶん今回と同じ原因だったんだろう。さらにその以前は正しく動いていたような気がしなくもない(結構期限切れをやらかしていたので確証が持てない)ので、よくわかりません。 詳しい方教えてください。 (2021-12-24 追記) 確証はないけど、証明書更新後にapache reloadをしておらず、新しい証明書がapacheに認識されてないのが原因な気がする。 FreeBSDフォーラムの投稿のように、証明書更新後のフックスクリプトでリロードしてやれば解決しそうな気がする。 /usr/local/etc/letsencrypt/renewal-hooks/deploy/reload_apache24.sh #!/bin/sh service `echo $0|sed -e 's/.*\/\(.*\)_\(.*\).sh/\2 \1/'` パッと見「なんじゃこりゃ?」ってシェルスクだが、自身のファイル名をsedで切り出しservice apache24 reloadを実行するという、実に巧妙な仕組みだ。引用元のフォーラムでは、同様にdovecotやpostfixの証明書更新も行っていた。中身同じでファイル名を変えればいいだけとは、よく思いつくものだ。 参考サイト Apache Running at 100% - Certbot Unable To Renew Certificate - Help - Let's Encrypt Community Support "Could not find ssl_module; not disabling session tickets." · Issue #7998 · certbot/certbot · GitHub Comments Name E-Mail Website 人間の証明として、ボックス内の全ての文字を入力してください。 この項目は空のままにして下さい:Preview Comment blog/2021/2021-12-01.txt 最終更新: 2022-04-20 11:23by Decomo