Рейтинг:0

Не удается получить входящую почту через TLS для Postfix SMTP Relay

флаг cn

У меня есть виртуальная машина Postfix Ubuntu, действующая как сервер ретрансляции почты, который принимает почту через порт 25 и перенаправляет ее в Microsoft Exchange онлайн для доставки. Это работает нормально в течение нескольких месяцев.

Теперь мне нужно разрешить SMTP-клиенту, который должен использовать TLS, также отправлять электронные письма через ретранслятор. Я добавил следующее в свой Postfix main.cf:

smtpd_tls_security_level = может
smtpd_tls_protocols = !SSLv2, !SSLv3, !TLSv1
smtpd_tls_chain_files =
        ${cert_path}/cert.pem,
        ${cert_path}/chain.pem

Однако, когда я пытаюсь использовать swaks с флагом --tls-on-connect, я получаю сообщение «Отказано в соединении» на портах 465 и 587. Старый незашифрованный порт 25 все еще работает. Файлы pem генерируются Let's Encrypt, а части счетчика закрытого ключа работают для шифрования исходящей почты на Exchange в Интернете. Я проверил их с помощью:

openssl verify -цель sslserver -partial_chain -CAfile /etc/letsencrypt/live/<полное доменное имя сервера>/chain.pem /etc/letsencrypt/live/<полное доменное имя сервера>/cert.pem

Однако, когда я пытаюсь установить TLS-соединения с SMTP-клиента, в журнале появляется следующее:

18 марта 14:41:49 hermes postfix/smtpd[578652]: предупреждение: ошибка загрузки цепочки из /etc/letsencrypt/live/<полное доменное имя сервера>/cert.pem: ключ не первый
18 марта 14:41:49 hermes postfix/smtpd[578652]: предупреждение: ошибка при загрузке закрытых ключей и сертификатов из: /etc/letsencrypt/live/<полное доменное имя сервера>/cert.pem,?/etc/letsencrypt/live/< полное доменное имя сервера>/chain.pem: отключение поддержки TLS

Я предполагаю, что вопрос, с которым я сталкиваюсь, заключается в том, как использовать SSL-сертификат Let's Encrypt для включения TLS на моем сервере ретрансляции почты.

Steffen Ullrich avatar
флаг se
Мне не совсем понятно, что вы пытаетесь. Но если вы хотите протестировать порт 25 с помощью TLS, используйте --tls, а не --tls-on-connect.
Рейтинг:1
флаг za

Оба Certbot цепь и сертификат файлы не содержат закрытый ключ сервера. Оба сообщения об ошибке являются просто жалобами на это. Ключ содержится только в секретный ключ файл.

Если вы хотите использовать один файл с ключом и сертификатами, вам необходимо вручную объединить файлы (например, в пост-хуке) и убедиться, что секретный ключ сначала идет содержимое, затем сертификат, то цепь, именно в этом порядке.

Обратите внимание, полная цепь файл уже является конкатенацией цепь и сертификат в правильном порядке. Просто укажите на этот готовый файл сертификата. Также Postfix не требует, чтобы все было в одном файле; есть конкретная опция, чтобы указать на файл ключа.

Я использую certbot с Postfix следующим образом:

smtpd_tls_cert_file = /etc/letsencrypt/live/example.org/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/example.org/privkey.pem
флаг ru
То же самое здесь, кроме того, вам нужно помнить о перезапуске постфикса при обновлении ключей (при условии, что вы делаете это автоматически, что я и делаю). Итак, в моем случае у меня есть это в /etc/letsencrypt/renewal/example.org.conf: ```post_hook = systemctl перезапустить apache2 postfix dovecot ```
Nikita Kipriyanov avatar
флаг za
Хотя это, безусловно, верно, изначально вопрос касался не деталей использования certbot, а использования файлов, сгенерированных certbot, в Postfix.
флаг ru
И хотя postfix отслеживает другие файлы (файлы в очереди, файлы сопоставления и т. д.), он не отслеживает файлы сертификатов. Вот почему я считаю, что мой комментарий справедлив.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.