Назад | Перейти на главную страницу

Клиент не представил сертификат (Postfix)

У меня есть ретранслятор SMTP postfix, который был настроен с опцией TLS. Теперь только что реализовано при отправке электронной почты в Gmail (например) с использованием Microsoft Outlook, обнаружено, что этот «Клиент не представил сертификат» в заголовке почты получателя

Получено: от MYCOMPUTER (неизвестно [100.200.100.150]) (с использованием TLSv1.2 с шифром (256/256 бит)) (клиент не представил сертификат) от smtpserver.domain.com (Postfix) с идентификатором ESMTPSA ABCDE12345 для пользователя @ gmail.com

Я использую приобретенный подстановочный сертификат SSL от Comodo.

Могу я узнать почему? Я неправильно настроил?

Пожалуйста помоги

smtpd_tls_security_level = май
smtp_tls_security_level = май
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 = 3600 с
smtpd_tls_ask_ccert = да
tls_random_source = dev: / dev / urandom
smtpd_tls_session_cache_database = btree: $ {каталог_данных} / smtpd_scache
smtp_tls_session_cache_database = btree: $ {каталог_данных} / 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

Вы только настроили использование сертификата для Postfix в роли сервера (т.е. получения почты). Эти smtpd_* настройки.

Но сообщение, на которое вы ссылаетесь, не о получении почты вашим сервером, а об отправке почты с вашего сервера на другой сервер, то есть о получении другим сервером. В этом случае обычно только сертификат принимающего почтового сервера (то есть другого) проверяется отправляющей системой (то есть вашим Postfix), если TLS вообще задействован (ваши настройки считают это необязательным, т.е. smtp_tls_security_level = may).

Некоторые почтовые серверы настроены не только на предоставление собственного сертификата для аутентификации отправителем (например, ваш Postfix), но и на запрос сертификата у отправителя. Обычно это необязательно, т.е. соединение TLS будет принято, даже если отправитель не предоставит такой сертификат для аутентификации. И это стало причиной сообщения «Клиент не предъявил сертификат».

Если вы действительно хотите предоставить сертификат клиента, вам необходимо явно настроить в Postfix с соответствующими smtp_* настройки (не smtpd_*), т.е. smtp_tls_cert_file и т. д. См. документация для подробностей.

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

Сервер поддерживает TLS, и клиент решил согласовать безопасное соединение TLS, там все хорошо.

(Client did not present a certificate)

Клиент не использовал сертификат клиента TLS для аутентификации на сервере для взаимный TLS что очень часто и не повод для беспокойства, если только вы не хотите / не нуждаетесь в взаимном TLS

Вы настроили Postfix, чтобы запрашивать у подключающихся клиентов SMTP сертификат клиента.

 smtpd_tls_ask_ccert = yes

Непонятно, зачем вы это сделали, поскольку вы сказали, что хотите не этого. Возможно, это произошло из-за ошибочного Интернет-руководства?

В любом случае вы можете удалить эту строку, чтобы предупреждение исчезло.