多数のビルド後、SSL に問題が発生

3 つ連続の投稿です… 編集すると新しい返信に表示されないと思い込んでしまったためです。

おっしゃったことはすべて行いました。すべてをインポートし、インポーターを停止し、アプリを起動しました。しかし、まだ自分のサイトに接続できません :frowning:

Firefox のメッセージは:「おっと、そのサイトが見つかりません。[私の Discourse サイト] のサーバーに接続できません」

…答えを知っている人がいることを願って、指を組んで待っています

その程度の情報では回答を出すのは難しいですね。分かっているのは、あなたのサイトがアクセスできないということだけです。

  • ログを確認しましたか?何と書かれていますか?
  • アプリ起動後、もう少し待ってみましたか?サイトがアクセス可能になるまで時間がかかる場合があります。

このケースに特化した投稿が複数あるようなので、これらを別のトピックにまとめた方が良いでしょう。これはインポーターと部分的に関連しているだけのように見えます。

「いいね!」 1

こんにちは、ヘルミさん。返信ありがとうございます。はい、この件はもしかしたら別のトピックに属するかもしれませんが、問題がインポート中に発生したため、まずはここに投稿しました。

ご質問についてですが、私は DO のドロップレットに Discourse をセルフインストールしました。最初はすべて正常に動作し、インポートも完了していました。しかし、スマイリーパスの設定を忘れていたため、すべてを削除して完全に再インポートする必要がありました。それ以降、問題が発生するようになりました。

インポートを行う前に、設定(テーマなど)のバックアップを復元するために、一度ボードに接続することができました。その後、スマイリーの場所を間違えていたため、インポートを中止せざるを得ず、最初からやり直すことになりました。そのため、再度すべてを削除し、再インポートを行いました(そう思っていました)。

しかし、それ以降はサイトに接続できなくなりました。Discourse Doctor はすべて正常と判断していますが、Discourse のバージョンが見つからないと報告しています。ログについては、確認コマンドを教えていただければ確認いたします。はい、何度も待ちましたが、まだ接続できません。

どこを確認すればこの問題を解決できるのか、本当に困っています。何かアイデアがあれば、お知らせください :slight_smile:

追記:ログの確認方法を調べました。すると、SSL エラーでいっぱいでした。そのため、Set up HTTPS support with Let's Encrypt に従って新しい証明書を再インストールしようとしています。これで解決することを心から願っています。

「いいね!」 1

SSLエラーは、おそらくLE(Let’s Encrypt)証明書の要求をすでに頻繁に行っていることを意味します。ドメインが一時的にLEでブロックされている可能性があります。詳しく確認し、もしそうであれば、当面の間サブドメインを使用して回避することをお勧めします。

それ以外については:DO(DigitalOcean)を利用されているので、何か問題が起きた際にいつでも戻れるように、重要なステップを完了するたびにDOでスナップショットを取得することをお勧めします。

「いいね!」 1

ヒントをいただき、本当にありがとうございます。次回の参考にさせていただきます!

また、バックアップから SSL ディレクトリをコピーすることで問題を解決することができました。どうやら、証明書が 0KB のファイルに変わっていたようです。不思議ですね。古いファイルを戻したところ、ログインできるようになりました。

みなさんのサポートとご協力に感謝します。これまでの投稿は、サポートや SSL のカテゴリに該当するかもしれませんが、投稿当時はそのことを知りませんでした。

編集:更新。アプリを再構築すると、どうやら SSL が毎回削除されているようです。再構築のたびに LE 証明書を取得するリクエストを送っているのでしょうか?もしそうなら、頻繁にリクエストを送りすぎていると判断されているのかもしれません。問題の原因を特定するために、何度も再構築を行ってしまいました。

「いいね!」 1

いいえ。私の知る限り、更新日を確認し、必要な場合に更新されます。

どうやら 7 日間に 5 つの証明書を取得できるようです:

「いいね!」 1

そのエラーの一つは、ドメイン名が正しいIPアドレスを指していないことが原因のようです。

JahDu さん、ありがとうございます。では、再ビルド後に SSL キーが正しく設定されていないのは、さらに奇妙に感じられます。

@Jay さん、確かに奇妙ですね。以前は同じ IP やその他の設定で正常に動作していました。ドメインは正しい IP を指しています。

Discourse はメインドメインのサブドメイン上にあり、両者は異なるサーバーにあります。サブドメインはメインドメインとは異なる IP を持っていましたが、SSL 設定にはサブドメインが登録されています。

app.yml を再確認したいところですが、プラグインが機能するように 10 万件の投稿を再構築している最中で、時間がかかるためまだ確認できていません。

編集:app.yml を再確認しましたが、すべて正常に動作していた時期から変更点はありません。
次にどこを確認すべきでしょうか?

再度のインポートを行いました。今回はアプリの再構築は行いませんでした。バックアップを復元した後、phpbb3 のデータベースをインポートしました。インポート後、またしても SSL キーが破損していました。何も再構築は行わず、コンテナ app.yml と import.yml を起動して停止しただけです。

途方に暮れています。管理 CP を通じてバックアップを復元すると SSL に問題が生じるのでしょうか?インポート後に SSL ディレクトリを確認したため、いつ問題が発生したかはわかりません。

どなたかこの件についてご教示いただけますでしょうか?

SSLのトラブルについて、ログからの詳細はありますか?私の推測では、まだLE(Let’s Encrypt)によってあなたのドメインがブロックされている可能性がありますが、ログの詳細がないと判断が難しいです。

「いいね!」 1

問題の発生状況は、SSL ディレクトリ内のファイルが何らかの原因で上書きされ、本来 3KB 強あるはずの .key および/または .cer ファイルが 0KB になってしまうというものです。全ファイルが 0KB に「破損」するわけではなく、1 つまたは 2 つのファイルのみが影響を受けます。私はバックアップからファイルをコピーして復元することで対処していますが、これはあくまで応急処置です。

(ファイルを修正する前の)ログには、以下のエラーが繰り返し表示されます。

nginx: [emerg] cannot load certificate “/shared/ssl/[mydomain]_ecc.cer”: BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen(‘/shared/ssl/[domain]_ecc.cer’,‘r’) error:2006D080:BIO routines:BIO_new_file:no such file)
nginx: [emerg] cannot load certificate “/shared/ssl/[domain]_ecc.cer”: PEM_read_bio_X509_AUX() failed (SSL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE)

「いいね!」 1

コンテナ内の /shared/letsencrypt/acme.sh.log を確認して、何が起きているかを確認してください。

「いいね!」 1

ああ、そこにもログがあったなんて知りませんでした :slight_smile: 指摘ありがとう!

そこで色々起きてるみたいだね、リビルドのたびに証明書を更新してたのかな?「renew」関連のことがたくさん出てきてるし。@helmi の言うとおり、これのことだと思う:

[Sat 25 Jan 2020 06:48:31 PM UTC] Create new order error. Le_OrderFinalize not found. {
“type”: “urn:ietf:params:acme:error:rateLimited”,
“detail”: "Error creating new order :: too many certificates already issued for exact set of domains: $
“status”: 429

で、どうすればこの制限を突破できるの?

編集:letsencrypt によると:

レート制限に達した場合、一時的にリセットする方法はありません。制限が有効期限切れになるまで、1 週間待つ必要があります。

それで、Rate Limits - Let's Encrypt を見つけました。

だから… 1 週間待つしかないのかな…

編集2:https://crt.sh/ を確認したら、過去 1 週間で 10 件の証明書しか見当たらないよ?50 件じゃないんだ…

質問:証明書が「更新」とみなされるのはいつ?リビルドアプリを実行したときだけかな?

「いいね!」 1

大文字と小文字が混在するホスト名をお使いですか?コードは現在、すべて小文字に変換されるはずだと考えていましたが、それは私の推測に過ぎません。有効な証明書がある場合、通常、再構築で新しい証明書の取得を要求しないとは確信しています。

「いいね!」 3

app.yml の DISCOURSE_HOSTNAME で定義されているという意味ですか?
いいえ、あれはすべて小文字です。

「いいね!」 3

その制限に達する唯一の手段は、何らかの理由で証明書リクエストが失敗している場合のみです。

「いいね!」 1

ありがとうございます :slight_smile: 失敗したかどうかを、どのように、どこで確認すればよいでしょうか?ログで確認すべきエラーをご存知ですか?

「いいね!」 1

LetsEncrypt フォーラムにアクセスし、ヘルプカテゴリで新しいトピックを作成し、表示されるフォームに記入してください。そうすれば、ドメインを確認し、問題がある場合はその内容をお知らせできます。また、問題の修正についてもサポートいたします。
余談ですが、LE では本番モードで遭遇する証明書制限を回避するため、「ステージング」モードの使用を推奨しています。失敗した試行の上限は 5 回で、1 時間後にリセットされます。:wink:

「いいね!」 3

ありがとう、ジム。エラーが戻ってきたらそうするね。
もう一度ビルドし直したら、なんとSSLエラーは出ていなかったよ!

「いいね!」 1

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