Comprobar manualmente si un servidor de correo responde en un puerto concreto

Esta mañana tenía que ver por qué un cliente no podía enviar correos desde el software que le proporciona mi empresa, el cliente insistía en que había configurado bien su cuenta pero la aplicación devolvía un error en la capa de transporte… así que algo no estaba bien. Me pareció raro que el puerto del SMTP fuese el 25 porque su proveedor de correo normalmente usa el puerto 465 y autenticación SSL. ¿Podía comprobar esto? Pues sí, abrí una consola y probé:

telnet mail.direcciondemicliente.com 25

Y la respuesta que obtuve es que el servidor no conectaba, así que luego probé a usar openssl para comprobar si respondía en el puerto 465:

openssl s_client -connect mail.direcciondemicliente.com:465

Y ahí ya recibí un mensaje que empezaba por 220 y me decía que el servidor estaba ready for the chachachá. Cambié la configuración de los puertos en su correo y todo fue como la seda.

Así que si queréis comprobar si un servidor de correo responde podéis usar Telnet como en el primer ejemplo (telnet dirección puerto) en el caso de que la conexión no esté cifrada, mientras que con openssl podéis hacer la misma comprobación en servidores que usen validación SSL. ¿Y si usan TLS? Pues con openssl también pero con más parámetros, tal que así:

openssl s_client -starttls smtp -connect mail.direcciondemicliente.com:587

Crear un certificado autofirmado con OpenSSL

Ya habíamos hablado anteriormente de OpenSSL, vamos a ver hoy cómo podríamos generar un certificado autofirmado. Vamos a generarlo con cifrado SHA512 y con clave RSA de 4096 bits, que se llamarán micerautofirm.key y micert.pem (el nombre lo podeís poner vosotros).

openssl req -x509 -sha512 -nodes -newkey rsa: 4096 -keyout micerautofirm.key -out micert.pem

Este certificado autofirmado tiene validez por un mes. Si queréis uno para más tiempo podéis utilizar el parámetro -days y pasarle un entero con el número de días. Por ejemplo, para un año:

openssl req -x509 -sha512 -nodes -days 365 -newkey rsa: 4096 -keyout micerautofirm.key -out micert.pem