TLS証明書の期限切れ 再挑戦2

証明書が再び期限切れになったようなので、コマンドラインから手動で再構築しています。

他の誰かも同様の状況を経験している場合に備えて共有します。

「いいね!」 1

二度と起こるべきではありません。12月に修正がありました。

「いいね!」 2

一方のフォーラムで証明書が期限切れになり、もう一方は問題ありませんでした。私が特定できる主な違いは、問題が発生したフォーラムはウェブアップデートを経たのに対し、問題のないフォーラムはウェブアップデートで停止し、CLIアップデートで復旧することを選択した点です。

以前のバージョン: 11月28日時点の 2025.12.0-latest (b10ea7929f)

12月23日に、問題が発生したフォーラムのnginxスクリプトをパッチ適用しましたが、これは後になって失敗したことが判明しました。しかし、nginxを再起動したりシグナルを送ったりしなかったので、おそらく無意味だったのでしょう。問題が発生しなかったフォーラムでは何も行いませんでした。

修正したのではなく、壊してしまったのかもしれません。しかし、トランスクリプトは以下の通りです。

root@ubuntu-4gb-hel1-1-app:/# docker exec -it app bash
root@ubuntu-4gb-hel1-1-app:/# sed -i '/301/s/;/$request_uri;/' /etc/nginx/conf.d/outlets/before-server/20-redirect-http-to-https.conf
root@ubuntu-4gb-hel1-1-app:/# cat /etc/nginx/conf.d/outlets/before-server/20-redirect-http-to-https.conf
server {
  listen 80;
  listen [::]:80;

  location ~ /.well-known {
    root /var/www/discourse/public;
    allow all;
  }

  return 301 https://forum.example.com$request_uri;
}

1月1日に両方のフォーラムをアップデートしました。一方はウェブで、もう一方はCLIで。

1月19日か20日頃に、問題が発生したフォーラムの証明書が期限切れになり、ウェブからアクセスできなくなりました。

気づいたときに、ホストを再起動しただけで、他には何もせず、新しい証明書が表示されました。
発行日: 2026年1月20日火曜日 12:04:25

非常に奇妙なことに、パッチを適用したファイルが、両方のサーバーがアップデートされたにもかかわらず、再起動時にはパッチが適用されていない状態に戻っているようです。これがどのように起こったのかを理解したいです。

root@ubuntu-4gb-hel1-1:~# docker exec -it app bash
root@ubuntu-4gb-hel1-1-app:/# ls -l /etc/nginx/conf.d/outlets/before-server/20-redirect-http-to-https.conf
-rw-r--r-- 1 root root 173 Jan 20 13:05 /etc/nginx/conf.d/outlets/before-server/20-redirect-http-to-https.conf
root@ubuntu-4gb-hel1-1-app:/# cat /etc/nginx/conf.d/outlets/before-server/20-redirect-http-to-https.conf
server {
  listen 80;
  listen [::]:80;

  location ~ /.well-known {
    root /var/www/discourse/public;
    allow all;
  }

  return 301 https://forum.techshedfrome.org;
}

参考までに、正常に動作しているサーバーの状態は次のとおりです。

root@rc-debian-hel:~# docker exec -it app bash
root@rc-debian-hel-app:/# ls -l /etc/nginx/conf.d/outlets/before-server/20-redirect-http-to-https.conf
-rw-r--r-- 1 root root 185 Jan  1 19:57 /etc/nginx/conf.d/outlets/before-server/20-redirect-http-to-https.conf
root@rc-debian-hel-app:/# cat /etc/nginx/conf.d/outlets/before-server/20-redirect-http-to-https.conf
server {
  listen 80;
  listen [::]:80;

  location ~ /.well-known {
    root /var/www/discourse/public;
    allow all;
  }

  return 301 https://retrocomputingforum.com$request_uri;
}

正常に動作しているサイトは、再構築または再起動時に新しい証明書を取得したようです。

発行日: 2026年1月1日木曜日 18:59:22
有効期限: 2026年4月1日水曜日 19:59:21

どちらも現在実行中です

Discourse 2026.01.0-latest - https://github.com/discourse/discourse version a9008966f0b339b5a00c1629bc61eb2ff8ad812a