web-dev-qa-db-ja.com

クライアントが証明書を提示しませんでした(Postfix)

TLSオプションで構成されたpostfix SMTPリレーがあります。 Microsoft Outlookを使用して(たとえば)Gmailにメールを送信すると、この「クライアントは証明書を提示しませんでした」というメッセージが受信者のメールヘッダーにあることがわかりました

受信:MYCOMPUTER(不明([100.200.100.150])から)(TLSv1.2と暗号化(256/256ビット)を使用)(ESMTPSAを使用したsmtpserver.domain.com(Postfix)によるクライアント) [email protected]のID ABCDE12345

Comodoから購入したワイルドカードSSL証明書を使用しています。

理由はわかりますか?間違って設定しましたか?

助けてください

smtpd_tls_security_level =かもしれません
smtp_tls_security_level = may
smtpd_use_tls =はい
smtp_use_tls =はい
smtp_tls_note_starttls_offer =はい
smtpd_tls_auth_only =はい

smtpd_tls_key_file = /etc/postfix/certs/key.key
smtpd_tls_cert_file = /etc/postfix/certs/crt.crt
smtpd_tls_CAfile = /etc/postfix/certs/cabundle.ca-bundle

smtpd_tls_loglevel = 1
smtpd_tls_received_header =はい
smtpd_tls_session_cache_timeout = 3600s
smtpd_tls_ask_ccert =はい
tls_random_source = dev:/ dev/urandom
smtpd_tls_session_cache_database = btree:$ {data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:$ {data_directory}/smtp_scache

smtp inet n - n - - smtpd submission inet n - n - - smtpd -o syslog_name=postfix/submission -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes

2
David A

using TLSv1.2 with cipher (256/256 bits)

サーバーはTLSをサポートし、クライアントは安全なTLS接続のネゴシエーションを選択しましたが、すべて問題ありません。

(Client did not present a certificate)

クライアントは mutualTLS の場合、サーバーに対してそれ自体を認証するためにTLSクライアント証明書を使用しませんでしたが、これは非常に一般的で理由はありません相互TLSを実行する必要がない限り、心配する必要があります。

4
HBruijn

サーバーの役割(つまり、メールの受信)でPostfixの証明書の使用のみを構成しました。これらはsmtpd_*設定です。

ただし、参照するメッセージは、サーバーによるメールの受信ではなく、サーバーから別のサーバーへのメールの送信、つまり他のサーバーによる受信に関するものです。この場合、TLSがまったく含まれている場合、通常は受信側のメールサーバーの証明書(つまり、もう1つ)が送信側のシステム(つまり、Postfix)によってチェックされます(設定でこのオプション(つまり、smtp_tls_security_level = may)が考慮されます)。 。

一部のメールサーバーは、送信者による認証用に独自の証明書(Postfixなど)を提供するだけでなく、送信者に証明書を要求するようにも構成されています。これは通常オプションです。つまり、送信者が自身を認証するためにそのような証明書を提供しなくても、TLS接続は受け入れられます。そして、これがメッセージ「クライアントが証明書を提示しませんでした」の原因です。

本当にクライアント証明書を提供したい場合は、Postfixで関連するsmtp_*設定(smtpd_*ではなく)、つまりsmtp_tls_cert_fileなどを明示的に設定する必要があります。 ドキュメントを参照) 詳細については。

5
Steffen Ullrich

接続しているSMTPクライアントにクライアント証明書を要求するようにPostfixを構成しました。

 smtpd_tls_ask_ccert = yes

これはあなたが望んだことではないので、なぜあなたがこれをしたのかは明らかではありません。多分それは誤ったインターネットチュートリアルから来たのですか?

いずれの場合も、この行を削除して警告を消すことができるはずです。

1
Michael Hampton