Estou tentando configurar meu servidor para enviar e-mails e recebo um erro de "alerta fatal de TLS" sempre que tento enviar e-mails.
Eu segui os passos indicados emesta postagemrelacionado ao meu problema para tentar superar o problema, mas finalmente me dá o erro que descrevo:
apt install gnutls-bin
cd /etc/exim4/
certtool --generate-privkey --outfile exim.key
certtool --generate-request --load-privkey exim.key --outfile exim.csr
Nome comum: gestiondecorreos.es
o resto deixo em branco (enter)
faça login no CACert => clique em "Certificados de Servidor" => Novo
Ele solicitará que você cole a solicitação de certificado: colo o conteúdo do arquivo exim.csr.
CACert solicitará que você confirme o nome do host.
Depois disso, ele mostrará um certificado na página resultante. Coloque o certificado em um novo arquivo chamado exim.crt
cd /etc/exim4/ chgrp Debian-exim exim.key chmod g+r exim.key vim /etc/exim4/conf.d/main/000_local (novo arquivo)
e insira dentro:
MAIN_LOG_SELECTOR=+tls_cipher +tls_peerdn MAIN_TLS_ENABLE=t
update-exim4.conf /etc/init.d/exim4 reiniciar
Tento me conectar ao meu servidor de e-mail por tls:
gnutls-cli -s -p 587 gestiondecorreos.es
ehlo gestiondecorreos.es
starttls
^D (ctr+d)
- o resultado do erro:
*** 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
Não sei por que aparece CN=server.example.com como assunto.
O arquivo /var/log/exim4/mainlog dizia:
TLS error on connection from lixxxxxx.members.linode.com ([127.0.0.1]) [xxxxxxxxxxx] (gnutls_handshake): A TLS fatal alert has been received.
No meu linode-vps, o domínio principal é gestiondecorreos.es e orbelanet.com é outro domínio no qual estou executando testes smtp.
Desde já, obrigado! Mikel
Responder1
tentativa de solução:
Alterar hostname (em vestacp): (server => gestiondecorreos.es, meu domínio principal em server):
/usr/local/vesta/bin/v-change-sys-hostname gestiondecorreos.es
instalando letsencrypt em gestiondecorreos.es:
/usr/local/vesta/bin/v-add-letsencrypt-domain 'admin' gestiondecorreos.es '' 'yes'
- aplique o certificado SSL instalado na etapa anterior em vesta, exim e dovecot:
/usr/local/vesta/bin/v-update-host-certificate admin gestiondecorreos.es
adicione "update_hostname_ssl='yes'" em /usr/local/vesta/conf/vesta.conf:
echo "UPDATE_HOSTNAME_SSL='yes'" >> /usr/local/vesta/conf/vesta.conf
Isso dirá ao Vesta para atualizar o SSL para os daemons Vesta, Exim e dovecot sempre que o SSL for renovado. Isso acontecerá automaticamente
a solução
ao recriar, com os passos anteriores, os arquivos
exim.key
,exim.csr
eexim.crt
e realizar o teste do serviço de correio tls comgnutls-cli -s -p 587 gestiondecorreos.es
esse tempo não dá erro, tudo OK.mas ao tentar enviar um novo e-mail ocorre o seguinte erro:
H=lixxxxxxxx.linode.com ([127.0.0.1]) [172.xxxxxxxxxx] X=TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128 CV=no rejected MAIL <xxxx@xxxxxxxx>: Helo name contains a ip address (HELO was [127.0.0.1]) and not is valid
a solução é continuar desabilitando as seguintes linhas em /etc/exim4/exim4.conf:
\# deny condition = ${if eq{$sender_helo_name}{}} \# message = HELO required before MAIL \# drop message = Helo name contains a ip address (HELO was $sender_helo_name) and not is valid \# condition = ${if match{$sender_helo_name}{\N((\d{1,3}[.-]\d{1,3}[.-]\d{1,3}[.-]\d{1,3})|([0-9a-f]{8})|([0-9A-F]{8}))\N}{yes}{no}} \# condition = ${if match {${lookup dnsdb{>: defer_never,ptr=$sender_host_address}}\}{$sender_helo_name}{no}{yes}} \# delay = 45s \# drop condition = ${if isip{$sender_helo_name}} \# message = Access denied - Invalid HELO name (See RFC2821 4.1.3)
reinicie o exim4:
service exim4 restart
E agora posso enviar e-mail sem problemas!