メールホスト名の証明書不一致によりsidekiqキューが過負荷、深刻なサイト不安定化が発生

これが見つけるのに役立つかもしれません:

dig +short smtp.mydomain.info|xargs -n 1 nslookup|grep name=

「いいね!」 3

残念ながら、同じエラーが発生して動作しません。
SSL_connect returned=1 errno=0 state=error: certificate verify failed (Hostname mismatch)

バージョン 2.9.0.beta4 (0acbd63320) では動作していましたが、ダウングレードできますか?

StartTLS サポート付きの新しい一時メール アカウントを作成しました。2.9.0.beta5 リリース前に修正されることを願っています。

「いいね!」 2

上記のアドバイスに従い、ホスト名を証明書の名前(name on the certificate)に設定しました。

この場合、問題は単なるアップグレードではなく、ランチャーによって開始された再構築(rebuild)後にのみ発生したように思われることに注意する価値があります。ランチャースクリプトに問題があるのでしょうか?

「いいね!」 2

どのように行ったか教えていただけますか?
SSLやTLSなしでポート25または587のSMTPサーバーを使用できず、気が狂いそうです。

よろしくお願いします。

「いいね!」 1

その場合、私の設定ではTLSを必要としないため、お手伝いできないかもしれません。対応策としては、有効な証明書を提供するサードパーティのメールプロバイダーを使用するか、この問題を回避できる修正を待つかのどちらかだと思います。

「いいね!」 1

SMTPサーバーのホスト名を見つけるために、リチャードのdigコマンドを試しましたか?それには証明書がありますか?

「いいね!」 1

私の設定もTLSもSSLもありません :slight_smile:

「いいね!」 1

こちらも同様の問題です Can't Send Emails - #14 by sukria
ベースイメージや外部ライブラリ、gemに変更はありましたか?

「いいね!」 6

はい、その通りです。同じ問題です。約2週間前に始まりました。

「いいね!」 1

両方試していただけますか

DISCOURSE_SMTP_ENABLE_START_TLS: false 
DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: none

「いいね!」 2

試した最初のことはこれですが、まだ同じエラーが発生しています

SSL_connect returned=1 errno=0 state=error: certificate verify failed (Hostname mismatch)
「いいね!」 1

両方のオプションを試しましたが、まだ機能しません。

  DISCOURSE_SMTP_ADDRESS: REDACTED
  DISCOURSE_SMTP_PORT: 25
  DISCOURSE_SMTP_USER_NAME: REDACTED
  DISCOURSE_SMTP_PASSWORD: REDACTED
  DISCOURSE_SMTP_ENABLE_START_TLS: false           # (optional, default true)
  DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: none
  DISCOURSE_SMTP_AUTHENTICATION: "login"

まだ certificate verify failed (self signed certificate) が表示されます。

「いいね!」 2

私にとっては、これは長い間ブロックバグでした… \n一時的なメールアドレスを新しく作成し、SMTP TLSサポートを追加することをお勧めします。

このgemに関連している可能性はありますか?

「いいね!」 4

全く同じ問題を抱えています。昨日、2.9.0.beta4 (a5779a7d0b) に再構築(rebuild)でアップグレードしたところ、発生しました。app.yml やその他の設定は一切変更していません。ただ再構築しただけです。

現在、1,300 件以上のジョブが失敗しています。

ログに SSL エラーが表示されています(以下にスクリーンショットを示します)。再構築によって DISCOURSE_SMTP_ENABLE_START_TLS フラグが無視されるようになったのではないかと考えています。

app.yml ファイルには「常に」このように記述していました(繰り返しますが、変更はありません)。

  DISCOURSE_SMTP_ADDRESS: 172.17.0.1
  DISCOURSE_SMTP_PORT: 25
  DISCOURSE_SMTP_AUTHENTICATION: none
  DISCOURSE_SMTP_ENABLE_START_TLS: false           # (optional, default true)

編集:これはホスト(メールサーバー)のメールログで確認できる内容です。エラーメッセージは再構築後に新しく表示されるようになったものです。

再構築前のメールログにおける Discourse に関する最後のメッセージ:

May 23 17:16:02 localhost postfix/smtpd[5247]: connect from discourse-docker[172.17.0.2]
May 23 17:16:02 localhost postfix/smtpd[5247]: 0D803B67FB: client=discourse-docker[172.17.0.2]
May 23 17:16:02 localhost postfix/cleanup[5279]: 0D803B67FB: message-id=<topic/421230/2413438.f609f9d756c226a154de43f4@forums.jag-lovers.com>
May 23 17:16:02 localhost postfix/smtpd[5247]: disconnect from discourse-docker[172.17.0.2] ehlo=1 mail=1 rcpt=1 data=1 quit=1 commands=5

再構築後のサーバーのメールログにおける最初のエントリ:

May 23 17:22:48 localhost postfix/smtpd[10929]: connect from discourse-docker[172.17.0.2]
May 23 17:22:48 localhost postfix/smtpd[10929]: SSL_accept error from discourse-docker[172.17.0.2]: -1
May 23 17:22:48 localhost postfix/smtpd[10929]: warning: TLS library problem:error:14094412:SSL routines:ssl3_read_bytes:sslv3 alert bad certificate:../ssl/record/rec_layer_s3.c:1528:SSL alert number 42:
May 23 17:22:48 localhost postfix/smtpd[10929]: lost connection after STARTTLS from discourse-docker[172.17.0.2]
May 23 17:22:48 localhost postfix/smtpd[10929]: disconnect from discourse-docker[172.17.0.2] ehlo=1 starttls=0/1 commands=1/2

この時間以降、メールログにおける Discourse のエントリはすべてこのようになっています。

スクリーンショット:

「いいね!」 4

Discourse Docker コンテナ内から curl を使用してメッセージを送信しようとしました。プレーンテキスト SMTP とポート 25 を指定すると、ホスト経由でメールを正常に送信できます。

$ cd /var/discourse/
$ sudo ./launcher enter app
x86_64 arch detected.
root@discourse-app:/var/www/discourse# curl smtp://172.17.0.1 --mail-from discourse@mydomain.com --mail-rcpt myname@gmail.com --upload-file README.md
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  7077    0     0  100  7077      0   575k --:--:-- --:--:-- --:--:--  575k
root@discourse-app:/var/www/discourse#

そして、ホストのメールログでこのテストがどのように表示されたかを示します。

May 24 16:53:49 localhost postfix/smtpd[25494]: connect from discourse-docker[172.17.0.2]
May 24 16:53:49 localhost postfix/smtpd[25494]: EB62CB5FCD: client=discourse-docker[172.17.0.2]
May 24 16:53:49 localhost postfix/cleanup[26008]: EB62CB5FCD: message-id=<>
May 24 16:53:49 localhost opendkim[1365]: EB62CB5FCD: can't determine message sender; accepting
May 24 16:53:49 localhost postfix/smtpd[25494]: disconnect from discourse-docker[172.17.0.2] ehlo=1 mail=1 rcpt=1 data=1 quit=1 commands=5

app.yml で TLS とポート 25 を指定していないこと、そしてこれが昨日の再構築まで機能していたことを考えると、最新の Discourse が app.yml の SMTP 設定を無視している可能性が高いと思われます。

「いいね!」 2

Bump、@pfaffman および/または @codinghorror

バグか、それとも何か別の問題かと思われますか?

「いいね!」 1

@gunnar メールに関する問題について説明されているため、投稿をこちらに移動しました。
「投稿はすでに取得されています」というエラーもこれによって発生しているかどうかはわかりませんが、メールに関する詳細はこの問題に関連しています。

「いいね!」 2

30日経ってもこの問題が解決しないなんて、私にはばかげているように思えます…
フォーラムを再び機能させるために、メールプロバイダーを変更しなければなりませんでした。

「いいね!」 1

それはイライラしますが、私の見解では、あるgemがもはや無効な証明書や暗号化されていないトランスポートを無視することをサポートしなくなったようです。メールをそのように送信できる時代は終わったのかもしれません。しかし、私自身はその問題を経験していないため、正しいかどうかを判断するのに十分なほど詳しく見ていません。

「いいね!」 2