jbrains
(J. B. Rainsberger)
1
皆さん、こんにちは。トラブルシューティングの助けが必要です。2回連続で、Let’s Encrypt の SSL 証明書が自動更新されませんでした。ここでの関連スレッドを読んで、毎回、古い証明書を削除してアプリケーションを再構築することで証明書を更新することに成功しました。これを実行すれば次回は自動的に更新されるものと思っていました。しかし、そうはなりませんでした。
証明書の更新を試みる cron ジョブがどこかで実行されているという証拠が見当たりません。Docker コンテナ内ではなく、ホストマシン上のさまざまな場所を確認すべきだと推測していますが、それで合っていますか? crontab -l は「root の crontab はありません」と表示し、/etc/cron* に何も見当たりません。
その結果、サーバーが (1) 証明書の更新を試みていないのか、(2) 試みて失敗しているのか、確信が持てません。誰か、このトラブルシューティングを案内していただけませんか?
残念ながら、証明書を再プロビジョニングするために shared/standalone/{letsencrypt,ssl} を削除してしまったため、確認できる古いログがありません。少なくとも、システムが証明書の更新を試みる次回にログを確認できるように、cron ジョブがインストールされていることを確認するにはどうすればよいでしょうか?
ありがとうございます。
「いいね!」 2
Moin
2
これが最後になるかもしれません。12月に修正がありました。
jbrains
(J. B. Rainsberger)
3
どうもありがとうございます。しかし、今後の更新が起こる可能性が高いかどうかを確認するために設定を確認したいです。その設定を確認する方法がわからないので、今求めているのはそのヘルプです。
どうやらcronジョブがあるはずですが、どこにあるのでしょうか?サーバーにはリストされていません。これはcronジョブではなく、Railsのスケジュールされたタスクなのでしょうか?
(ホストシステム上の)/var/discourse/shared/standalone/letsencrypt/acme.sh.logで、DiscourseがSSL証明書を確認し、その応答が「まだ有効です」であったことを確認したので、Discourseが期限内に証明書の更新を試みるという証拠だと思います。
では、その「cron」ジョブがどのように設定されているかを知りたいです。これは本当にLinuxレベルのcronジョブなのでしょうか、それともwheneverのようなものを使用したRailsの単なる定期的なスケジュールされたタスクなのでしょうか?ソースコードを調べることなく、これを調べて確認できるものはありますか?Railsコンソール、または2026年におけるそれに相当するものでこれを見つけることはできますか?(Railsでの作業は長い間していません。)
ありがとうございます。
jbrains
(J. B. Rainsberger)
4
ああ、そうそう、この不具合の原因が、文書化されておらず、あまり明確ではなく、明らかに予期されていなかった魔法のショートカットにあることをついに学びました。「/で始まるなら、それは正規表現でなければならない」ということです。まだ全体の文脈は理解していませんが、どうやらそれが原因のようです。
これがダックタイピング文化です。素晴らしい柔軟性がありますが、書き留めておかないと、クライアントは驚くことになるというリスクがありますね。
Pups::ReplaceCommand を強化して、to が正規表現のように見えるかどうかをより注意深くチェックする必要があるようです。あるいは、それを置換テキストとして扱うのではなく、何かを eval() すると想定している動作を修正する必要があります。
これは、誰も時間もエネルギーもない「雑用」の範疇に入るのだろうと推測しています。もし誰かが ReplaceCommand がどのように振る舞うべきかについての役立つ例を教えてくれれば、私も時間とエネルギーを寄付できるかもしれません。
少なくとも何が起こっているのかについてはより良い見当がつきましたが、この文を書き終える前に、その知識はすでに薄れ始めています。