Ошибка проверки SSL-сертификата Postfix

В течение многих лет мы использовали Postfix на сервере Ubuntu 12.04 для отправки писем через отправку регистрационной формы. Это работало совсем недавно, в марте 2017 года.

Однако внезапно postfix выдает ошибку «Ошибка проверки сертификата» (согласно mail.log) для многих, хотя и не для всех доменов. Например, он отклоняет любую почту, отправленную на адрес Gmail, но будет проходить через несколько доменов .edu. Я проверил сертификаты SSL, чтобы убедиться, что они обновлены в соответствии с некоторыми онлайн-руководствами, и что существует правильный файл ca-bundle.srt, а main.cf указывает на правильный файл. Кажется, все проверено. И снова, до марта 2017 года таких проблем не было.

Если поможет, пример описания журнала для почтового сервера .edu;

Oct  3 19:20:39 server postfix/pickup[27108]: 7A1BA5E02FB: uid=33 from=<www-data>
Oct  3 19:20:39 server postfix/cleanup[27114]: 7A1BA5E02FB: message-id=<07e5de6389f1ee1f0db978687a2a701c@server>
Oct  3 19:20:39 server postfix/qmgr[27109]: 7A1BA5E02FB: from=<www-data@server>, size=2354, nrcpt=1 (queue active)
Oct  3 19:20:39 server postfix/smtp[27116]: certificate verification failed for mailgateway[ip]:25: untrusted issuer /C=SE/O=AddTrust AB/OU=AddTrust Externa$
Oct  3 19:20:39 server postfix/pickup[27108]: C25FB5E02FC: uid=33 from=<www-data>
Oct  3 19:20:39 server postfix/cleanup[27114]: C25FB5E02FC: message-id=<839ec587b4d3c56ecb8be082fa36e626@server>
Oct  3 19:20:39 server postfix/qmgr[27109]: C25FB5E02FC: from=<www-data@server>, size=2354, nrcpt=1 (queue active)
Oct  3 19:20:40 server postfix/smtp[27116]: 7A1BA5E02FB: to=<email>, relay=mailgateway06[ip]:25, delay=0.62, delays=0.05/0.04/0.22/0.31, dsn=2.$
Oct  3 19:20:40 server postfix/qmgr[27109]: 7A1BA5E02FB: removed
Oct  3 19:20:40 server postfix/smtp[27121]: certificate verification failed for mailgateway04[ip]:25: untrusted issuer /C=SE/O=AddTrust AB/OU=AddTrust Externa$
Oct  3 19:20:41 server postfix/smtp[27121]: C25FB5E02FC: to=<email>, relay=mailgateway04[ip]:25, delay=1.4, delays=0.01/0.02/1/0.35, dsn=2.0.0,$
Oct  3 19:20:41 server postfix/qmgr[27109]: C25FB5E02FC: removed

Или для адреса Google,

Oct  3 19:00:32 server postfix/pickup[25780]: C0B5E5E02FB: uid=33 from=<www-data>
Oct  3 19:00:32 server postfix/cleanup[25788]: C0B5E5E02FB: message-id=<502b3fe5d32d82faca381ef6f18939f8@server>
Oct  3 19:00:32 server postfix/qmgr[25781]: C0B5E5E02FB: from=<www-data@server>, size=2353, nrcpt=2 (queue active)
Oct  3 19:00:32 server postfix/smtp[25790]: connect to gmail-smtp-in.l.google.com[2607:f8b0:4001:c14::1b]:25: Network is unreachable
Oct  3 19:00:33 server postfix/pickup[25780]: 0542A5E02FC: uid=33 from=<www-data>
Oct  3 19:00:33 server postfix/cleanup[25788]: 0542A5E02FC: message-id=<893ee1fe8af389833686860025d71966@server>
Oct  3 19:00:33 server postfix/qmgr[25781]: 0542A5E02FC: from=<www-data@server>, size=2353, nrcpt=2 (queue active)
Oct  3 19:00:33 server postfix/smtp[25790]: certificate verification failed for gmail-smtp-in.l.google.com[74.125.202.27]:25: untrusted issuer /C=US/O=Equifax/OU=Equifax Secure Certifi$
Oct  3 19:00:33 server postfix/smtp[25796]: connect to gmail-smtp-in.l.google.com[2607:f8b0:4001:c14::1b]:25: Network is unreachable
Oct  3 19:00:33 server postfix/smtp[25796]: certificate verification failed for gmail-smtp-in.l.google.com[173.194.196.26]:25: untrusted issuer /C=US/O=Equifax/OU=Equifax Secure Certif$
Oct  3 19:00:34 server postfix/smtp[25796]: 0542A5E02FC: to=<email@GMAIL.COM>, relay=gmail-smtp-in.l.google.com[173.194.196.26]:25, delay=1.1, delays=0.01/0.02/0.11/0.95, dsn=2.0.0$

В чем может быть причина?

Также Если это поможет, вот мой файл main.cf;

# See /usr/share/postfix/main.cf.dist for a commented, more complete version


# Debian specific:  Specifying a file name will cause the first
# line of that file to be used as the name.  The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

readme_directory = no

# TLS parameters
smtpd_tls_cert_file = /etc/ssl/certs/smtpd.crt
smtpd_tls_key_file = /etc/ssl/private/smtpd.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

myhostname = [SERVER_NAME_OMITTED]
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = [SERVER_NAME_OMITTED], localhost.localdomain, localhost
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = ipv4
smtpd_sasl_local_domain =
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination,check_policy_service unix:private/policy-spf
smtp_tls_security_level = may
smtpd_tls_security_level = may
smtpd_tls_auth_only = no
smtp_tls_note_starttls_offer = yes
smtpd_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
#content_filter = smtp-amavis:[127.0.0.1]:10024
home_mailbox = Maildir/
mailbox_command =
spf-policyd_time_limit = 3600s

Обновление: я также пытался создать файл cacert.pem для стольких веб-страниц и установить smtp_tls_CAfile и smtpd_tls_CAfile для использования этого файла. Это приводит к другой ошибке (и почта не отправляется);

Oct  4 01:51:51 server postfix/pickup[6816]: 969E15E02FB: uid=1000 from=<admin>
Oct  4 01:51:51 server postfix/cleanup[6841]: 969E15E02FB: message-id=<20171004015151.969E15E02FB@server>
Oct  4 01:51:51 server postfix/qmgr[6817]: 969E15E02FB: from=<admin@server>, size=291, nrcpt=1 (queue active)
Oct  4 01:51:51 server postfix/smtp[6848]: CA certificate verification failed for gmail-smtp-in.l.google.com[74.125.129.26]:25: num=7:certificate signature failure
Oct  4 01:51:52 server postfix/smtp[6848]: 969E15E02FB: to=<email@gmail.com>, relay=gmail-smtp-in.l.google.com[74.125.129.26]:25, delay=0.45, delays=0.06/0.07/$
Oct  4 01:51:52 server postfix/qmgr[6817]: 969E15E02FB: removed
1
задан 4 October 2017 в 04:56
2 ответа

Вам необходимо ввести правильный путь для файла пакета CA .

См. Поддержка Postfix TLS :

Файл $ smtpd_tls_CAfile содержит сертификаты CA одного или нескольких доверенные центры сертификации. Файл открывается (с правами root) до Postfix входит в необязательный chroot jail и поэтому не должен быть доступен из внутри chroot jail.

Обратите внимание, что postfix может работать в chroot jail и не может получить доступ к файлу CA .

Вы можете ввести другой путь внутри каталога Postfix, например (в моей инфраструктуре) :

smtpd_tls_CAfile = /var/spool/postfix/etc/ssl/certs/ca-certificates.crt

Существует ли файл /etc/ssl/certs/ca-certificates.crt ?

Если вы не можете найти файлы CA и не знаете, где они размещены, вы можете использовать эту команду, чтобы найти все файлы, похожие на CA:

find / \( -name "*.crt" -o -name "*.ca-bundle" -o -name "*.pem" \) -type f -size +100k

Я использую подход, что файл CA имеет размер больше 100 КБ (мой файл - около 270 КБ)

Или вы можете найти все файлы сертификатов и отсортировать их по размеру и получить только первые 10 строк вывода. find команда:

find / \( -name "*.crt" -o -name "*.ca-bundle" -o -name "*.pem" \) -type f -exec du -sh {} \; | sort -r -h | head
3
ответ дан 3 December 2019 в 16:25

Ваш Ubuntu очень старый. Кажется, ваши CA-сертификаты устарели.

Ваш собственный сертификат не используется, если вы отправляете письма. Это только для получения писем с smtpd.

smtp использует предоставленные сертификаты пакета ca-сертификатов для проверки. Вы можете попробовать установить резервную копию, чтобы исправить ошибку в журналах.

Например ca-сертификатов-backport

ОБНОВЛЕНИЕ: ваша конфигурация должна включать smtp_tls_CAfile = / etc / ssl / certs / ca -certificates.crt

5
ответ дан 3 December 2019 в 16:25

Теги

Похожие вопросы