Guía rápida de comandos OpenSSL

Los comandos de OpenSSL que de verdad se usan: hashes y bytes aleatorios, claves, solicitudes de certificado, lectura de certificados, conversión de formatos y pruebas de un servidor. Cada uno se ejecutó con OpenSSL 3.5.

Última revisión:

AdSense Placeholder
Slot: header_reference_page
En esta página

OpenSSL es un conjunto de herramientas de línea de comandos para hashes, cifrado, claves y certificados. Todos los comandos de abajo se ejecutaron con OpenSSL 3.5. Para ver un certificado sin usar la terminal, utilice Decodificador de Certificados o Verificador de Certificado SSL; para calcular resúmenes en el navegador, Generador de Hash.

Hashes, datos aleatorios y cifrado

Tarea Comando
Mostrar la versión openssl version
SHA-256 de un archivo openssl dgst -sha256 archivo.txt
Resumen SHA-384 en Base64 (para SRI) openssl dgst -sha384 -binary archivo.js | openssl base64 -A
32 bytes aleatorios en hexadecimal openssl rand -hex 32
24 bytes aleatorios en Base64 openssl rand -base64 24
Cifrar un archivo con una frase de contraseña openssl enc -aes-256-cbc -pbkdf2 -salt -in f.txt -out f.enc
Descifrarlo de nuevo openssl enc -d -aes-256-cbc -pbkdf2 -in f.enc -out f.txt
Generar un hash de contraseña para /etc/shadow (crypt SHA-512) openssl passwd -6 -salt abcdefgh secreto

Claves y solicitudes de certificado

Tarea Comando
Clave privada RSA de 2048 bits openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out key.pem
Clave de curva elíptica (P-256) openssl genpkey -algorithm EC -pkeyopt ec_paramgen_curve:P-256 -out ec.pem
Extraer la clave pública openssl pkey -in key.pem -pubout -out pub.pem
Describir una clave openssl pkey -in ec.pem -noout -text
Listar las curvas disponibles openssl ecparam -list_curves
Solicitud de firma de certificado (CSR) openssl req -new -key key.pem -subj "/CN=example.com" -out req.csr
Leer una CSR openssl req -in req.csr -noout -subject
Certificado autofirmado por 365 días, con SAN openssl req -x509 -newkey rsa:2048 -nodes -keyout key.pem -out cert.pem -days 365 -subj "/CN=example.com" -addext "subjectAltName=DNS:example.com,DNS:www.example.com"

Leer y convertir certificados

Tarea Comando
Sujeto, emisor y fechas de validez openssl x509 -in cert.pem -noout -subject -issuer -dates
Huella SHA-256 openssl x509 -in cert.pem -noout -fingerprint -sha256
Nombres alternativos del sujeto (SAN) openssl x509 -in cert.pem -noout -ext subjectAltName
Todo, decodificado openssl x509 -in cert.pem -noout -text
De PEM a DER openssl x509 -in cert.pem -outform der -out cert.der
De DER a PEM openssl x509 -inform der -in cert.der -out cert.pem
Comprobar un certificado con un archivo de CA openssl verify -CAfile ca.pem cert.pem
¿La clave corresponde al certificado? (compare los dos hashes) openssl x509 -in cert.pem -noout -pubkey | openssl sha256 y openssl pkey -in key.pem -pubout | openssl sha256
Empaquetar clave y certificado como PKCS#12 openssl pkcs12 -export -in cert.pem -inkey key.pem -out bundle.p12
Inspeccionar un paquete PKCS#12 openssl pkcs12 -info -in bundle.p12 -noout
Obtener y leer el certificado que presenta un servidor openssl s_client -connect example.com:443 -servername example.com </dev/null | openssl x509 -noout -subject -dates
Probar una versión concreta de TLS openssl s_client -connect example.com:443 -tls1_3

Conviene saber

  • -pbkdf2 hace que enc derive la clave con PBKDF2 en lugar del método antiguo y débil; inclúyalo siempre.
  • -nodes («no DES») deja la clave privada sin cifrar en el disco. Úselo solo con claves de prueba o desechables.
  • Pasar una frase de contraseña en la línea de comandos (-pass pass:...) la expone en la lista de procesos. Es mejor -pass stdin o un archivo.
  • La opción -servername fija el SNI. Sin ella, un servidor que aloja varios sitios puede presentar el certificado equivocado.
  • Un resumen que pasa por openssl base64 -A es lo que produce un generador de hash SRI para el atributo integrity.

Pruebe estas herramientas

Véase también

  • Hoja de referencia Chuleta de algoritmos de hash y cifrado
    Tamaños de resumen de MD5, SHA-1, SHA-2, SHA-3 y BLAKE2, claves y bloques de AES, ChaCha20 y 3DES.
  • Guía Cómo funcionan HTTPS y TLS
    Cómo el handshake de TLS 1.3, el intercambio de claves y la cadena de certificados hacen una conexión privada.
  • Guía Cómo funciona el hashing
    Qué hace una función hash, el efecto avalancha mostrado con salida real de SHA-256, qué algoritmos siguen siendo seguros.
  • Glosario Certificado digital
    Un certificado digital es un archivo firmado que vincula una clave pública con una identidad, como un nombre de dominio.
  • Glosario TLS
    TLS (Transport Layer Security) es el protocolo criptográfico que cifra y autentica las conexiones, incluidas HTTPS, el correo y las VPN.
AdSense Placeholder
Slot: footer_leaderboard