Я пытаюсь настроить свой сервер для отправки почты, и каждый раз, когда я пытаюсь отправить почту, я получаю сообщение об ошибке «Фатальное предупреждение TLS».
Я выполнил шаги, указанные в этом сообщении , связанных с моей проблемой, чтобы попытаться решить эту проблему, но в итоге я получил описанную мной ошибку:
apt install gnutls-bin
cd /etc/exim4/
certtool --generate-privkey --outfile exim.key
certtool --generate-request --load-privkey exim.key --outfile exim.csr
Общее имя: gestiondecorreos.es
the остальное я оставляю пустым (введите)
войдите в CACert => нажмите «Server Certificates» => New
Вас спросят для вставки в запрос сертификата: я вставляю содержимое файла exim.csr.
CACert попросит вас подтвердить имя хоста.
После этого он покажет сертификат на получившейся веб-странице. Поместите сертификат в новый файл с именем exim.crt
cd / etc / exim4 / chgrp Debian-exim exim.key chmod g + r exim.key vim /etc/exim4/conf.d/main/000_local (новый файл)
и вставьте внутрь:
MAIN_LOG_SELECTOR = + tls_cipher + tls_peerdn MAIN_TLS_ENABLE = t
update-exim4.conf /etc/init.d/exim4 restart
Я пытаюсь подключиться к моему почтовому серверу по tls:
gnutls-cli -s -p 587 gestiondecorreos.es
ehlo gestiondecorreos.es
starttls
^D (ctr+d)
*** Starting TLS handshake
- Certificate type: X.509
- Got a certificate list of 1 certificates.
- Certificate[0] info:
- subject `EMAIL=eguz*****@gmail.com,CN=server.example.com,OU=IT,O=Vesta Control Panel,L=San Francisco,ST=California,C=US', issuer `EMAIL=eguz*****@gmail.com,CN=server.example.com,OU=IT,O=Vesta Control Panel,L=San Francisco,ST=California,C=US', serial 0x0086e738bec1714309, RSA key 4096 bits, signed using RSA-SHA256, activated `2020-02-04 15:42:00 UTC', expires `2021-02-03 15:42:00 UTC', key-ID `sha256:6095e39dc286060d74d300f494814744d803ad2f5c55587ca38a2d7ed2b58194'
Public Key ID:
sha1:5f4b******************
sha256:6095****************
Public key's random art:
+--[ RSA 4096]----+
| ..o .o|
| . o +.|
*******************
| .oo.|
+-----------------+
- Status: The certificate is NOT trusted. The certificate issuer is unknown. The name in the certificate does not match the expected.
*** PKI verification of server certificate failed...
*** Fatal error: Error in the certificate.
*** Handshake has failed
Я не знаю, почему CN = server.example.com выглядит как тема.
В файле / var / log / exim4 / mainlog сказано:
TLS error on connection from lixxxxxx.members.linode.com ([127.0.0.1]) [xxxxxxxxxxx] (gnutls_handshake): A TLS fatal alert has been received.
В моем linode-vps основным доменом является gestiondecorreos.es, а orbelanet.com - еще один домен, на котором я запускаю тесты smtp.
Заранее спасибо! Mikel
:: попытка решения ::
Изменить имя хоста (в vestacp): (сервер => gestiondecorreos.es, мой основной домен на сервере):
/usr/local/vesta/bin/v-change- sys-hostname gestiondecorreos.es
установка letsencrypt в gestiondecorreos.es:
/usr/local/vesta/bin/v-add-letsencrypt-domain 'admin' gestiondecorreos.es '' 'да'
применить сертификат ssl, установленный на предыдущем шаге в vesta, exim и dovecot:
/usr/local/vesta/bin/v-update-host-certificate admin gestiondecorreos.es
добавьте «update_hostname_ssl='yes'» в /usr/local/vesta/conf/vesta.conf:
echo "UPDATE_HOSTNAME_SSL='yes'" >> /usr/local/vesta/conf/vesta.conf
-- Это сообщит Vesta об обновлении SSL демонам Vesta, Exim и dovecot каждый раз при обновлении SSL. Это произойдет автоматически
:: решение ::
при воссоздании с помощью предыдущих шагов файлов exim.key, exim.csr и exim.crt и выполнении теста почтовой службы tls с помощью gnutls-cli -s -p 587 gestiondecorreos.es на этот раз ошибки не выдает, все ОК.
но при попытке отправить новое письмо выдает следующую ошибку:
H=lixxxxxxxx.linode.com ([127.0.0.1]) [172.xxxxxxxxxx] X=TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128 CV =нет отклоненной ПОЧТЫ xxxx@xxxxxxxx: имя Helo содержит IP-адрес (HELO был [127.0.0.1]) и не является действительным
решение: я продолжаю отключать следующие строки в /etc/exim4/exim4.conf:
# условие отказа = ${if eq{$sender_helo_name}{}} # message = HELO требуется перед MAIL
# drop message = Имя Helo содержит IP-адрес (HELO было $sender_helo_name) и не является допустимым # условие = ${if match{$sender_helo_name}{\N((\d{1,3}[.-]\d{1,3}[.-]\d{1,3}[.-]\ д{1,3})|([0-9a-f]{8})|([0-9A-F]{8}))\N}{да}{нет}} # условие = ${if match {${lookup dnsdb{>: defer_never,ptr=$sender_host_address}}}{$sender_helo_name}{нет}{да}} # задержка = 45 с
# условие сброса = ${if isip{$sender_helo_name}} # сообщение = Отказано в доступе - Недопустимое имя HELO (см. RFC2821 4.1.3)
перезапуск exim4:
перезапуск службы exim4
И теперь я могу отправлять электронную почту без проблем!