SSL LetsEncryptの更新が機能しない(外部の追加リバースプロキシのため)

私の Discourse インスタンスの証明書が今日有効期限切れになり、ブラウザでエラーが表示されています。以下の手順に従って手動で更新を試みました:

更新は成功したと表示され、/shared/letsencrypt フォルダにも新しい証明書が確認できました。その後、Docker 内で nginx を再起動しましたが、インスタンスを再構築しても古い証明書が送信されているようです。

ドメインを複数のサイトで確認しましたが、すべて有効期限切れと表示されており、ローカルだけの問題ではないようです。

何か見落としていることはありますか?

私は15日前に同じ手順を実行しました。

cd /var/discourse
./launcher enter app
"/shared/letsencrypt"/acme.sh --cron --home "/shared/letsencrypt" --force
exit

まず学んだのは、Chromeで証明書を表示すると実際には有効であっても無効と表示される場合があることです。詳しくは以下をご覧ください:Chrome / Chromium のバグ:SSL 証明書の日付が正しく表示されない(期限切れと誤表示)

その後、以下を試みました

me@site:/var/discourse$ sudo ./launcher rebuild app

しかし、これは機能しませんでした。最後に以下を実行しました

sudo reboot

その結果、サイトは期待通りに動作するようになりました。


rebuild の手順について言及していますが、それが本当に必要かどうかは確信がありません。ただ、その過程で私が実行した手順の一つでした。

「いいね!」 4

数時間試行した直後、この投稿をした後に気づいたのですが、nginx リバースプロキシを備えたマルチサイト展開を使用していたため、外側の nginx サーバーも再起動する必要があり、それが瞬時に機能し始めました。
もし同じ状況に陥る方がいるかもしれないので、これを回答としてマークしておきます。

「いいね!」 1

最後の sudo reboot が機能したのは、nginx が再起動したためだと考えられます。これは私が上記の解決策で記載した通りです。

「いいね!」 1

これについていくつか補足します:

  • 言及されている状況では、ブラウザはアドレスバーに実際に無効として表示しません
  • OSによっては、証明書の日付を確認しても警告が出ない場合があります

証明書が自動的に更新されなかった根本原因を特定できましたか?

サイトを確認したところ、本番モードではないため、すべてのメールが停止されており、その中には証明書の更新メールも含まれていました。

image

メールが停止された理由は、データベースの復元プロセスの一環だからです。具体的には、Discourse の別のインスタンスから復元されました。

2 つのサイトが同じメールを送信しないように、メールは無効化されています。

このプロセスにおいてメールが関与するのは、LE(Let’s Encrypt)が証明書の有効期限が切れる前に更新されていない場合に警告を送信する場合のみです。

「いいね!」 1

なるほど、ありがとうございます。では、なぜ証明書が自動的に更新されなかったのか、根本原因を探る必要があります。

証明書が更新されない理由として考えられることはありますか?

一般的には、予期せずプロセスを中断させるカスタマイズが原因です。詳細と実施した内容を記載して、新しいトピックを立てることをお勧めします。

「いいね!」 1

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.