%3As3_pkt.c%3A1493%3ASSL%20%E3%82%A2%E3%83%A9%E3%83%BC%E3%83%88%E7%95%AA%E5%8F%B7%2042%3A.png)
mail.myserver.com
私は過去 15 年以上にわたってpostfix を実行しており、メールの送受信に成功しています。Let's Encrypt を使用すると、すべての証明書が完全に有効になります。openssl s_client -connect mail.myserver.com:25 -starttls smtp
ポート 465 での SSL の STARTTLS および同様のテストを使用して、証明書が正常であることを確認できます。
私がこう言ったのは、これが新しいセットアップではなく、この 1 つの例外を除いて、すべてが正しくセットアップされ、スムーズに実行されているように見えることを確認するためです。
これらすべてを考慮すると、特定のベンダー (私の医療提供者) からのメールを受信できないことがわかりました。Postfix ログを調べてみると、次のような行があります。
postfix/smtpd[2016]: connect from mail1.static.mydoctor.com[xxx.xx.xx.xxx]
postfix/smtpd[2016]: SSL_accept error from mail1.static.mydoctor.com[xxx.xx.xx.xxx]: 0
postfix/smtpd[2016]: warning: TLS library problem: 2016:error:14094412:SSL routines:ssl3_read_bytes:sslv3 alert bad certificate:s3_pkt.c:1493:SSL alert number 42:
postfix/smtpd[2016]: lost connection after STARTTLS from mail1.static.mydoctor.com[xxx.xx.xx.xxx]
postfix/smtpd[2016]: disconnect from mail1.static.mydoctor.com[xxx.xx.xx.xxx]
これは、mail1.static.mydoctor.com
メール サーバーが STARTTLS 経由で接続しようとしているmail.myserver.com
が、不正な証明書を提示したため、postfix が接続を拒否したことを示しています。私の解釈が間違っている場合はお知らせください。
送信者が間違っていたとしても、私は本当にそれらの特定のメールを受信する必要があります。 この場合、どのような回避策が有効でしょうか? 証明書のチェックを緩めて、とにかく不正な証明書を許可する方法はありますか? または、その特定のリモート サーバーをホワイトリストに登録して、そのサーバーから送信されるものはすべて受け入れられるようにする方法はありますか? 他に何かありますか?
答え1
... sslv3 alert bad certificate:s3_pkt.c:1493:SSL alert number 42:
これは、mail1.static.mydoctor.com メール サーバーが STARTTLS 経由で mail.myserver.com に接続しようとしているが、不正な証明書を提示したため、postfix が接続を拒否したことを示しています。
これは誤った解釈です。ログの「alert bad certificate」は、送信元 MTA が証明書を検証できなかったため、サーバーが送信元 MTA からこの警告を受信したことを意味します。つまり、送信元が間違った証明書を提供しているのではなく、送信元が受け入れない証明書をサーバーが提供しているということです。
送信者の MTA が証明書を検証できなかった理由は不明です。ユーザー側の設定の問題か、送信者側の設定の問題である可能性があります。