~/docs /OpenSSL y Certificados
OpenSSL y Certificados
OpenSSL y Certificados
Imported from Notion: OpenSSL y Certificados
updated:: 2026.07.10
Que resuelve
Referencia practica para inspeccionar certificados TLS, claves, CSR, cadenas de confianza y problemas habituales con openssl.
Ver certificados remotos
Mostrar certificado del servidor
openssl s_client -connect {HOST}:443 -servername {HOST}
Ver cadena completa
openssl s_client -connect {HOST}:443 -servername {HOST} -showcerts
Extraer certificado remoto
openssl s_client -connect {HOST}:443 -servername {HOST} </dev/null 2>/dev/null | openssl x509 -noout -text
Ver fechas
openssl s_client -connect {HOST}:443 -servername {HOST} </dev/null 2>/dev/null | openssl x509 -noout -dates
Ver subject e issuer
openssl s_client -connect {HOST}:443 -servername {HOST} </dev/null 2>/dev/null | openssl x509 -noout -subject -issuer
Inspeccionar archivos locales
Certificado PEM
openssl x509 -in {CERT}.pem -noout -text
Fechas de certificado
openssl x509 -in {CERT}.pem -noout -dates
Fingerprint SHA256
openssl x509 -in {CERT}.pem -noout -fingerprint -sha256
CSR
openssl req -in {CSR}.csr -noout -text
Clave privada RSA
openssl rsa -in {KEY}.key -check -noout
Clave privada generica
openssl pkey -in {KEY}.key -check -noout
Crear claves y CSR
Generar clave privada RSA
openssl genrsa -out {KEY}.key 4096
Generar clave privada Ed25519
openssl genpkey -algorithm ED25519 -out {KEY}.key
Crear CSR
openssl req -new -key {KEY}.key -out {CSR}.csr
Crear certificado autofirmado de laboratorio
openssl req -x509 -newkey rsa:4096 -keyout {KEY}.key -out {CERT}.crt -days 365 -nodes
warningUn certificado autofirmado sirve para laboratorio o entornos internos controlados. Para servicios publicos usa una CA confiable.
Validar pareja certificado-clave
Modulus de certificado
openssl x509 -noout -modulus -in {CERT}.crt | openssl md5
Modulus de clave RSA
openssl rsa -noout -modulus -in {KEY}.key | openssl md5
Los hashes deben coincidir si el certificado y la clave forman pareja.
Convertir formatos
DER a PEM
openssl x509 -inform der -in {CERT}.der -out {CERT}.pem
PEM a DER
openssl x509 -outform der -in {CERT}.pem -out {CERT}.der
PFX/P12 a PEM
openssl pkcs12 -in {CERT}.p12 -out {CERT}.pem -nodes
PEM a PFX/P12
openssl pkcs12 -export -out {CERT}.p12 -inkey {KEY}.key -in {CERT}.crt -certfile {CHAIN}.crt
Verificar cadena
Verificar contra CA
openssl verify -CAfile {CA}.crt {CERT}.crt
Verificar con cadena intermedia
openssl verify -CAfile {CA}.crt -untrusted {CHAIN}.crt {CERT}.crt
TLS debug
Probar version TLS minima
openssl s_client -connect {HOST}:443 -servername {HOST} -tls1_2
Probar TLS 1.3
openssl s_client -connect {HOST}:443 -servername {HOST} -tls1_3
Ver cipher negociado
openssl s_client -connect {HOST}:443 -servername {HOST} </dev/null 2>/dev/null | grep -i 'Cipher'
Recetas
Comprobar caducidad rapidamente
echo | openssl s_client -connect {HOST}:443 -servername {HOST} 2>/dev/null | openssl x509 -noout -enddate
Comprobar SANs
openssl x509 -in {CERT}.crt -noout -text | grep -A1 'Subject Alternative Name'
Generar hash de archivo
openssl dgst -sha256 {FILE}
Generar random seguro en base64
openssl rand -base64 32
Variables
| Variable | Descripcion |
|---|---|
{HOST} | Dominio del servicio TLS |
{CERT} | Nombre base del certificado |
{KEY} | Nombre base de la clave privada |
{CSR} | Nombre base del CSR |
{CHAIN} | Cadena intermedia |
{CA} | Certificado de CA |
{FILE} | Archivo |
Errores comunes
| Sintoma | Causa probable | Solucion |
|---|---|---|
unable to get local issuer certificate | Falta intermedia | Instala cadena completa |
| Certificado valido pero navegador falla | SAN incorrecto | Revisa Subject Alternative Name |
| Clave no coincide | Certificado equivocado | Compara modulus/hash |
| Sin SNI muestra otro certificado | Falta -servername | Incluye SNI en s_client |
Checklist final
-
Usa siempre
-servernameal probar HTTPS. -
Revisa
notBeforeynotAfter. -
Comprueba SAN, issuer y cadena.
-
Protege las claves privadas con permisos restrictivos.
- EOF -