Я пытаюсь заставить свой почтовый сервер зашифровать соединение между моим почтовым сервером и другими пользователями. В настоящее время он может подключаться к себе через TLS, но, похоже, не может подключаться к другим серверам через шифрование.
В postfix main.cf - при принудительном внутреннем шифровании установкой:
smtpd_tls_security_level = encrypt
Все работает с внутренними соединениями TLS, и электронные письма доставляются в Gmail, Yahoo и т. Д. Но когда я пытаюсь принудительно межсерверное шифрование установив:
smtp_tls_security_level = encrypt
Письма не доставляются. Они отправляются обычным провайдерам электронной почты TLS, таким как Gmail, Yahoo и т. Д. Оба имеют одинаковый сертификат.
smtpd_tls_key_file = /etc/letsencrypt/live/mail.example.com/privkey.pem
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.example.com/cert.pem
smtpd_tls_CAfile = /etc/letsencrypt/live/mail.example.com/chain.pem
smtp_tls_key_file = /etc/letsencrypt/live/mail.example.com/privkey.pem
smtp_tls_cert_file = /etc/letsencrypt/live/mail.example.com/cert.pem
smtp_tls_CAfile = /etc/letsencrypt/live/mail.example.com/chain.pem
В чем может быть проблема?
Я куплю сертификат получше, если это необходимо, но я не читал, что это будет. Я пробовал использовать самозаверяющие сертификаты, сертификаты Cloudflare TLS и Let's Encrypt, и все они дают одинаковые результаты.
Может что-то не так с master.cf? или main.cf?
При отправке сервера на сервер ваш сервер становится клиентом (smtp_ params).
Вы можете обратиться к полному Документация по SMTP-клиенту Postfix здесь.
Что касается вашей конфигурации, smtp_tls_CAfile
должен указывать на ваше доверенное хранилище сертификатов (используется для проверки сертификата удаленных серверов) и не должен быть сертификатом вашего сервера. Хранилище доверенных сертификатов может находиться в другом месте / в другом файле в зависимости от используемого дистрибутива.
smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt
Кроме того, я бы не стал настраивать какой-либо клиентский сертификат, если удаленный сервер не использует его для аутентификации отправлений почты. Так удалил бы smtp_tls_key_file
и smtp_tls_cert_file
записи. Неправильная настройка может привести к тому, что вы не сможете отправлять почту.
По крайней мере, я бы добавил в конфигурацию клиента TLS сервера:
smtp_tls_security_level = may
smtp_tls_loglevel = 1
Активируйте TLS для SMTP-клиента postfix (с помощью may
value будет использовать TLS, если удаленный сервер поддерживает его, encrypt
будет обеспечивать это).
Установите уровень ведения журнала равным 1, что позволит вам определить, используется ли TLS, путем создания таких записей журнала, как:
postfix/smtp[7867]: Trusted TLS connection established to someserver.domain.net[0.0.0.0]:25: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)
Не забудьте перезагрузить или перезапустить postfix.