Comandos Clave - 331.1 Certificados X.509 y PKI

Generación de Claves y CSR

ComandoDescripción
openssl genrsa -aes256 -out clave.key 4096Genera clave RSA de 4096 bits cifrada
openssl ecparam -genkey -name secp384r1 -out ec.keyGenera clave de curva elíptica
openssl req -new -key clave.key -out solicitud.csrCrea CSR a partir de clave existente
openssl req -new -newkey rsa:4096 -keyout k.key -out s.csrGenera clave + CSR en un paso
openssl req -x509 -new -key k.key -days 365 -out cert.pemCrea certificado autofirmado
openssl req -in solicitud.csr -text -noout -verifyExamina y verifica un CSR

Operaciones con Certificados

ComandoDescripción
openssl x509 -in cert.pem -text -nooutMuestra detalles del certificado
openssl x509 -in cert.pem -dates -nooutMuestra fechas de validez
openssl x509 -in cert.pem -fingerprint -sha256 -nooutObtiene fingerprint SHA-256
openssl x509 -req -in s.csr -CA ca.pem -CAkey ca.key -CAcreateserial -out cert.pem -days 365Firma CSR con CA
openssl verify -CAfile ca.pem certificado.pemVerifica certificado contra CA
openssl verify -CAfile raiz.pem -untrusted intermedia.pem cert.pemVerifica cadena completa

Operaciones de CA

ComandoDescripción
openssl ca -in solicitud.csr -out cert.pem -config openssl.cnfFirma CSR con configuración de CA
openssl ca -revoke cert.pem -config openssl.cnfRevoca un certificado
openssl ca -gencrl -out ca.crl -config openssl.cnfGenera CRL actualizada
openssl crl -in ca.crl -text -nooutExamina una CRL
openssl ocsp -issuer ca.pem -cert srv.pem -url http://ocsp.ej.comConsulta OCSP

Conversión de Formatos

ComandoDescripción
openssl x509 -in c.pem -outform DER -out c.derPEM a DER
openssl x509 -in c.der -inform DER -outform PEM -out c.pemDER a PEM
openssl pkcs12 -export -in c.pem -inkey k.key -out c.p12PEM a PKCS#12
openssl pkcs12 -in c.p12 -out todo.pem -nodesPKCS#12 a PEM (sin cifrar clave)
openssl pkcs12 -in c.p12 -clcerts -nokeys -out cert.pemExtrae solo certificado de PKCS#12

Diagnóstico TLS

ComandoDescripción
openssl s_client -connect host:443Conexión TLS de diagnóstico
openssl s_client -connect host:443 -showcertsMuestra toda la cadena de certificados
openssl s_client -connect host:443 -servername hostConexión con SNI explícito
openssl s_client -connect host:443 -CAfile ca.pemVerifica con CA específica
openssl s_client -connect host:443 -starttls smtpSTARTTLS para protocolos como SMTP

Archivos y Rutas Importantes

RutaDescripción
/etc/pki/tls/openssl.cnfConfiguración OpenSSL (RHEL/CentOS)
/etc/ssl/openssl.cnfConfiguración OpenSSL (Debian/Ubuntu)
/etc/pki/CA/Directorio de la CA (RHEL)
/etc/pki/ca-trust/source/anchors/CAs adicionales de confianza (RHEL)
/usr/local/share/ca-certificates/CAs adicionales (Debian)
update-ca-trustActualiza almacén de CAs (RHEL)
update-ca-certificatesActualiza almacén de CAs (Debian)