Comando openssl de Linux

Linux 命令大全Manual completo de comandos de Linux


OpenSSL es un potente kit de herramientas de cifrado de código abierto que proporciona diversos algoritmos de cifrado, funciones de gestión de certificados e implementación del protocolo SSL/TLS. Es la herramienta estándar de facto para manejar tareas de cifrado en sistemas Linux.

Las funciones principales de OpenSSL incluyen:

  • Crear y gestionar certificados SSL
  • Cifrar/descifrar archivos
  • Generar pares de claves
  • Probar conexiones SSL
  • Calcular valores hash
  • Verificación de firmas digitales

Sintaxis básica

El formato de sintaxis básica del comando openssl es:

openssl command [command_options] [command_args]

Donde:

  • command: El subcomando de OpenSSL a ejecutar (como genrsa, req, x509, etc.)
  • command_options: Las opciones y parámetros del subcomando
  • command_args: Los argumentos del subcomando

Subcomandos comunes y ejemplos

1. Generar par de claves RSA

Generar una clave privada RSA de 2048 bits:

openssl genrsa -out private.key 2048

Extraer la clave pública de la clave privada:

openssl rsa -in private.key -pubout -out public.key

Descripción de parámetros:

  • -out: Especifica el archivo de salida
  • 2048: Longitud de la clave (en bits)
  • -pubout: Mostrar la clave pública

2. Crear certificado autofirmado

Generar CSR (solicitud de firma de certificado):

openssl req -new -key private.key -out cert.csr

Generar certificado autofirmado (validez de 365 días):

openssl req -x509 -new -key private.key -days 365 -out cert.crt

Descripción de parámetros:

  • -new: Crear nueva solicitud
  • -key: Especificar el archivo de clave privada
  • -days: Período de validez del certificado (en días)
  • -x509: Generar certificado en formato X.509

3. Cifrado y descifrado de archivos

Cifrar archivo usando AES-256-CBC:

openssl enc -aes-256-cbc -salt -in plaintext.txt -out encrypted.enc

Descifrar archivo:

openssl enc -d -aes-256-cbc -in encrypted.enc -out decrypted.txt

Descripción de parámetros:

  • -aes-256-cbc: Usar algoritmo AES-256-CBC
  • -salt: Agregar sal aleatoria para mejorar la seguridad
  • -in: Archivo de entrada
  • -out: Archivo de salida
  • -d: Modo de descifrado

4. Calcular valores hash de archivos

Calcular hash SHA-256:

openssl dgst -sha256 filename.txt

Calcular hash MD5:

openssl dgst -md5 filename.txt

5. Probar conexión SSL

Probar el certificado SSL de un servidor remoto:

openssl s_client -connect example.com:443 -showcerts

Descripción de parámetros:

  • -connect: Especificar host y puerto
  • -showcerts: Mostrar la cadena de certificados del servidor

Uso avanzado

1. Crear certificado en formato PKCS#12

Empaquetar certificado y clave privada en un archivo PKCS#12:

openssl pkcs12 -export -in cert.crt -inkey private.key -out cert.p12

2. Ver información del certificado

Ver información detallada del certificado:

openssl x509 -in cert.crt -text -noout

3. Verificar cadena de certificados

Verificar la integridad de la cadena de certificados:

openssl verify -CAfile ca.crt cert.crt

Consideraciones de seguridad

  1. Protección de claves: El archivo de clave privada debe tener permisos adecuados (como 600) para evitar fugas
  2. Selección de algoritmos: Evitar el uso de algoritmos inseguros (como MD5, SHA1)
  3. Fortaleza de la contraseña: Usar contraseñas seguras al cifrar
  4. Período de validez del certificado: Renovar periódicamente los certificados caducados
  5. Generación de números aleatorios: Asegurar que el sistema tenga suficiente entropía para operaciones criptográficas

Preguntas frecuentes

P1: ¿Cómo verificar la versión de OpenSSL?

openssl version

P2: ¿Cómo generar una clave ECC más segura?

openssl ecparam -genkey -name secp384r1 -out ecc.key

P3: ¿Cómo convertir el formato de un certificado?

Convertir de PEM a DER:

openssl x509 -in cert.pem -outform der -out cert.der

Ejercicios prácticos

  1. Generar un par de claves RSA de 4096 bits
  2. Crear un certificado autofirmado con validez de 2 años
  3. Cifrar un archivo de texto y descifrarlo con la misma contraseña
  4. Verificar la información del certificado SSL de un sitio web que uses frecuentemente

Al dominar el comando openssl, podrás manejar diversas tareas relacionadas con cifrado y seguridad, sentando una base sólida para la seguridad del sistema y el trabajo de administración.


Linux 命令大全Manual completo de comandos de Linux

Otras extensiones