Estoy intentando configurar mi servidor para enviar correo y recibo un error de "alerta fatal TLS" cada vez que intento enviar correo.
He seguido los pasos indicados enesta publicaciónrelacionado con mi problema para intentar solucionar el problema, pero finalmente me da el error que describo:
apt install gnutls-bin
cd /etc/exim4/
certtool --generate-privkey --outfile exim.key
certtool --generate-request --load-privkey exim.key --outfile exim.csr
Nombre común: gestiondecorreos.es
el resto lo dejo en blanco(entrar)
inicie sesión en CACert => haga clic en "Certificados de servidor" => Nuevo
Le pedirá que pegue la solicitud de certificado: pego el contenido del archivo exim.csr.
CACert le pedirá que confirme el nombre de host.
Después de eso, mostrará un certificado en la página web resultante. Coloque el certificado en un nuevo archivo llamado exim.crt
cd /etc/exim4/ chgrp Debian-exim exim.key chmod g+r exim.key vim /etc/exim4/conf.d/main/000_local (archivo nuevo)
e inserte dentro:
MAIN_LOG_SELECTOR=+tls_cipher +tls_peerdn MAIN_TLS_ENABLE=t
actualizar-exim4.conf /etc/init.d/exim4 reiniciar
Intento conectarme a mi servidor de correo mediante tls:
gnutls-cli -s -p 587 gestiondecorreos.es
ehlo gestiondecorreos.es
starttls
^D (ctr+d)
- el resultado del error:
*** 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
No sé por qué aparece CN=server.example.com como asunto.
El archivo /var/log/exim4/mainlog decía:
TLS error on connection from lixxxxxx.members.linode.com ([127.0.0.1]) [xxxxxxxxxxx] (gnutls_handshake): A TLS fatal alert has been received.
En mi linode-vps el dominio principal es gestiondecorreos.es y orbelanet.com es otro dominio en el que estoy ejecutando pruebas smtp.
¡Gracias de antemano! Mikel
Respuesta1
intento de solución:
Cambiar nombre de host (en vestacp): (servidor => gestiondecorreos.es, mi dominio principal en servidor):
/usr/local/vesta/bin/v-change-sys-hostname gestiondecorreos.es
Instalando letsencrypt en gestiondecorreos.es:
/usr/local/vesta/bin/v-add-letsencrypt-domain 'admin' gestiondecorreos.es '' 'yes'
- aplicar el certificado ssl instalado en el paso anterior en vesta, exim y dovecot:
/usr/local/vesta/bin/v-update-host-certificate admin gestiondecorreos.es
agregue "update_hostname_ssl='yes'" en /usr/local/vesta/conf/vesta.conf:
echo "UPDATE_HOSTNAME_SSL='yes'" >> /usr/local/vesta/conf/vesta.conf
Esto le indicará a Vesta que actualice SSL a Vesta, Exim y los demonios dovecot cada vez que se renueve SSL. Esto sucederá automáticamente
la solución
al recrear con los pasos anteriores los archivos
exim.key
,exim.csr
yexim.crt
y realizar la prueba del servicio de correo tls congnutls-cli -s -p 587 gestiondecorreos.es
este tiempo no da error, todo ok.pero al intentar enviar un nuevo correo electrónico nos da el siguiente error:
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
la solución es que sigo deshabilitando las siguientes líneas en /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)
reiniciar exim4:
service exim4 restart
¡Y ahora puedo enviar correos electrónicos sin problema!