Verificar certificados SSL con openssl

última modificación:

Cuando configuramos HTTPS en Apache o necesitamos depurar un problema con el certificado, openssl nos permite inspeccionarlo desde la línea de comandos sin necesidad de abrir un navegador.

Para conectarnos a un servidor y ver su certificado:

openssl s_client -connect example.com:443

La salida incluye la cadena de certificados, las fechas de validez y el emisor. Para ver solo la información del certificado (sin el resto de la sesión TLS):

openssl s_client -connect example.com:443 2>/dev/null | openssl x509 -noout -text

Para ver las fechas de validez de forma concisa:

openssl s_client -connect example.com:443 2>/dev/null | openssl x509 -noout -dates

La salida muestra notBefore y notAfter, que son las fechas de inicio y caducidad del certificado.

Si tenemos el archivo del certificado en disco (por ejemplo, para verificarlo antes de instalarlo en Apache):

openssl x509 -in miservidor.crt -noout -text

Para verificar que la clave privada corresponde al certificado (los hashes deben coincidir):

openssl x509 -in miservidor.crt -noout -modulus | md5sum
openssl rsa -in miservidor.key -noout -modulus | md5sum

openssl también permite generar claves y crear solicitudes de certificado (CSR). Para eso, puedes ver cómo crear un certificado SSL autofirmado.