cat posts/certbot-%e3%81%ae%e8%a8%bc%e6%98%8e%e6%9b%b8%e6%9b%b4%e6%96%b0%e3%81%a7%e8%a9%b0%e3%81%be%e3%81%a3%e3%81%9f%e8%a9%b1.md

【悲報】ワイの証明書、自動更新が静かに失敗し続けていた

1 風吹けば名無し 2026/09/12(土) 21:04:00 ID:Ce8Rt2nw
証明書の有効期限が残り7日になっても自動更新が失敗し続けとったわ
しかも静かに

2 風吹けば名無し 2026/09/12(土) 21:05:23 ID:Ag5vN9sm
cron 回してなかったんか

3 風吹けば名無し 2026/09/12(土) 21:06:08 ID:Ce8Rt2nw
>>2 回しとった
cron で certbot renew を定期実行しとったのに、ブラウザで確認したら有効期限が延びてへん

4 風吹けば名無し 2026/09/12(土) 21:07:16 ID:Ag5vN9sm
>>3 なんでや

5 風吹けば名無し 2026/09/12(土) 21:08:47 ID:Ce8Rt2nw
>>4 ログ掘り返したら、証明書の保存先ディレクトリの権限が変わっとって書き込みに失敗しとった

6 風吹けば名無し 2026/09/12(土) 21:09:40 ID:Ag5vN9sm
>>5 エラー出るやろ

7 風吹けば名無し 2026/09/12(土) 21:10:56 ID:Ce8Rt2nw
>>6 出とった
けど cron のメール通知を設定してなかったから完全に見落としとった

8 風吹けば名無し 2026/09/12(土) 21:11:34 ID:Tk3bJ7ry
>>7 一番あかんパターンやん

9 風吹けば名無し 2026/09/12(土) 21:12:35 ID:Ce8Rt2nw
有効期限の確認はこれでやっとる

# 証明書の有効期限を確認する
openssl x509 -enddate -noout -in /etc/letsencrypt/live/example.com/fullchain.pem

10 風吹けば名無し 2026/09/12(土) 21:13:59 ID:Tk3bJ7ry
>>9 それ定期的に見なあかんな

11 風吹けば名無し 2026/09/12(土) 21:14:45 ID:Ce8Rt2nw
で、権限直して certbot の更新に成功しても今度は切り替わらんかった

12 風吹けば名無し 2026/09/12(土) 21:15:54 ID:Wd6mX4pz
>>11 なんでや

13 風吹けば名無し 2026/09/12(土) 21:17:26 ID:Ce8Rt2nw
>>12 Nginx が古い証明書をメモリに持ち続けるんや
ディスクの証明書は新しくなっとるのにブラウザには古いまま

14 風吹けば名無し 2026/09/12(土) 21:18:20 ID:Wd6mX4pz
>>13 reload 忘れか

15 風吹けば名無し 2026/09/12(土) 21:19:37 ID:Ce8Rt2nw
>>14 せや。certbot の deploy-hook に reload 仕込んで解決したわ

# /etc/letsencrypt/renewal-hooks/deploy/reload-nginx.sh
systemctl reload nginx

16 風吹けば名無し 2026/09/12(土) 21:20:16 ID:Tk3bJ7ry
>>15 それだけでええんか

17 風吹けば名無し 2026/09/12(土) 21:21:18 ID:Ce8Rt2nw
>>16 それだけや
cron のログ確認と更新後の reload、この2点を押さえるまで「なんとなく動いとる」と思い込んどった
実際に証明書切れ起こす前に気づけたのは運が良かったと思う