openssl - Programa de línea de comandos OpenSSL
SINOPSIS
openssl comando [ opciones ... ] [ parámetros ... ]
openssl no-XXX [ opciones ]
openssl -help | -version
DESCRIPCIÓN
OpenSSL es un conjunto de herramientas de criptografía que implementa los protocolos de red Secure Sockets Layer (SSL) y Transport Layer Security (TLS) y los estándares de criptografía relacionados requeridos por ellos.
El programa openssl es un programa de línea de comandos para utilizar las diversas funciones de criptografía de la biblioteca de criptografía de OpenSSL desde la línea de comandos. Se puede utilizar para:
o Creación y gestión de claves privadas, claves públicas y parámetros
o Operaciones de criptografía de clave pública
o Creación de certificados X.509, CSR y CRL
o Cálculo de resúmenes de mensajes y códigos de autenticación de mensajes
o Cifrado y descifrado con cifrados
o Pruebas de cliente y servidor SSL/TLS
o Manejo de correo S/MIME firmado o cifrado
o Solicitudes de marca de tiempo, generación y verificación
RESUMEN DE COMANDOS
El programa openssl proporciona una gran variedad de comandos (comando en la "SINOPSIS" anterior). Cada comando puede tener muchas opciones y parámetros de argumento, como se muestra arriba como opciones y parámetros.
La documentación detallada y los casos de uso para la mayoría de los subcomandos estándar están disponibles (por ejemplo, openssl-x509(1)). El subcomando openssl-list(1) se puede utilizar para enumerar los subcomandos.
El comando no-XXX prueba si un comando del nombre especificado está disponible. Si no existe ningún comando con el nombre XXX, devuelve 0 (éxito) e imprime no-XXX; de lo contrario, devuelve 1 e imprime XXX. En ambos casos, la salida se envía a stdout y no se imprime nada en stderr. Los argumentos adicionales de la línea de comandos siempre se ignoran. Dado que para cada cifrado existe un comando con el mismo nombre, esto proporciona una forma sencilla para que los scripts de shell comprueben la disponibilidad de los cifrados en el programa openssl. (no-XXX no puede detectar pseudo-comandos como quit, list o no-XXX en sí).
Opción de configuración
Muchos comandos utilizan un archivo de configuración externo para algunos o todos sus argumentos y tienen una opción -config para especificar ese archivo. El nombre predeterminado del archivo es openssl.cnf en el área de almacenamiento de certificados predeterminada, que se puede determinar a partir del comando openssl-version(1) utilizando la opción -d o -a. La variable de entorno OPENSSL_CONF se puede utilizar para especificar una ubicación de archivo diferente o para deshabilitar la carga de una configuración (utilizando la cadena vacía).
Entre otras cosas, el archivo de configuración se puede utilizar para cargar módulos y especificar parámetros para generar certificados y números aleatorios. Consulte config(5) para obtener más detalles.
Comandos estándar
asn1parse
Analiza una secuencia ASN.1.
ca Administración de la Autoridad de Certificación (CA).
ciphers
Determinación de la descripción del conjunto de cifrado.
cms Comando CMS (Sintaxis de Mensaje Criptográfico).
crl Administración de la Lista de Revocación de Certificados (CRL).
crl2pkcs7
Conversión de CRL a PKCS#7.
dgst
Cálculo de resumen del mensaje. Los cálculos MAC son reemplazados por openssl-mac(1).
dhparam
Generación y administración de parámetros Diffie-Hellman. Reemplazado por openssl-genpkey(1) y
openssl-pkeyparam(1).
dsa Administración de datos DSA.
dsaparam
Generación y administración de parámetros DSA. Reemplazado por openssl-genpkey(1) y
openssl-pkeyparam(1).
ec Procesamiento de claves EC (curva elíptica).
ecparam
Manipulación y generación de parámetros EC.
enc Cifrado, descifrado y codificación.
engine
Información y manipulación del motor (módulo cargable).
errstr
Conversión de número de error a cadena de error.
fipsinstall
Instalación de la configuración FIPS.
gendsa
Generación de clave privada DSA a partir de parámetros. Reemplazado por openssl-genpkey(1) y
openssl-pkey(1).
genpkey
Generación de clave privada o parámetros.
genrsa
Generación de clave privada RSA. Reemplazado por openssl-genpkey(1).
help
Muestra información sobre las opciones de un comando.
info
Muestra diversa información integrada en las bibliotecas OpenSSL.
kdf
Funciones de derivación de claves.
list
Lista algoritmos y funciones.
mac Cálculo del código de autenticación de mensajes.
nseq
Crea o examina una secuencia de certificados Netscape.
ocsp
Comando de protocolo de estado de certificado en línea.
passwd
Generación de contraseñas hash.
pkcs12
Administración de datos PKCS#12.
pkcs7
Administración de datos PKCS#7.
pkcs8
Comando de conversión de clave privada al formato PKCS#8.
pkey
Administración de claves públicas y privadas.
pkeyparam
Administración de parámetros de algoritmos de clave pública.
pkeyutl
Comando de operación criptográfica de algoritmos de clave pública.
prime
Calcula números primos.
rand
Genera bytes pseudoaleatorios.
rehash
Crea enlaces simbólicos a los archivos de certificados y CRL con el nombre de los valores hash.
req Administración de solicitudes de firma de certificados (CSR) PKCS#10 X.509.
rsa Administración de claves RSA.
rsautl
Comando RSA para firma, verificación, cifrado y descifrado. Reemplazado por openssl-pkeyutl(1).
s_client
Implementa un cliente SSL/TLS genérico que puede establecer una conexión transparente con un
servidor remoto que hable SSL/TLS. Está destinado únicamente a fines de prueba y proporciona
solo una funcionalidad de interfaz rudimentaria, pero internamente utiliza casi toda la
funcionalidad de la biblioteca ssl de OpenSSL.
s_server
Implementa un servidor SSL/TLS genérico que acepta conexiones de clientes remotos que hablan
SSL/TLS. Está destinado únicamente a fines de prueba y proporciona solo una funcionalidad de
interfaz rudimentaria, pero internamente utiliza casi toda la funcionalidad de la biblioteca ssl
de OpenSSL. Proporciona tanto un protocolo orientado a la línea de comandos para probar las
funciones SSL como una función de respuesta HTTP simple para emular un servidor web con
conciencia de SSL/TLS.
s_time
Temporizador de conexión SSL.
sess_id
Gestión de datos de sesión SSL.
smime
Procesamiento de correo S/MIME.
speed
Medición de la velocidad del algoritmo.
spkac
Comando para imprimir y generar SPKAC.
srp
Mantiene el archivo de contraseñas SRP. Este comando está en desuso.
storeutl
Comando para listar y mostrar certificados, claves, CRL, etc.
ts
Comando de la Autoridad de Sellado de Tiempo.
verify
Verificación de certificado X.509. Consulte también la página del manual openssl-verification-options(1).
version
Información de la versión de OpenSSL.
x509
Gestión de datos de certificado X.509.
Comandos de resumen de mensajes
blake2b512
Resumen BLAKE2b-512
blake2s256
Resumen BLAKE2s-256
md2
Resumen MD2
md4
Resumen MD4
md5
Resumen MD5
mdc2
Resumen MDC2
rmd160
Resumen RMD-160
sha1
Resumen SHA-1
sha224
Resumen SHA-2 224
sha256
Resumen SHA-2 256
sha384
Resumen SHA-2 384
sha512
Resumen SHA-2 512
sha3-224
Resumen SHA-3 224
sha3-256
Resumen SHA-3 256
sha3-384
Resumen SHA-3 384
sha3-512
Resumen SHA-3 512
keccak-224
Resumen KECCAK 224
keccak-256
Resumen KECCAK 256
keccak-384
Resumen KECCAK 384
keccak-512
Resumen KECCAK 512
shake128
Resumen SHA-3 SHAKE128
shake256
Resumen SHA-3 SHAKE256
sm3
Resumen SM3
Comandos de cifrado, descifrado y codificación
Los siguientes alias proporcionan un acceso conveniente a las codificaciones y cifrados más utilizados.
Dependiendo de cómo se haya configurado y compilado OpenSSL, es posible que no estén presentes todos los cifrados que se enumeran aquí. Consulte openssl-enc(1) para obtener más información.
aes128, aes-128-cbc, aes-128-cfb, aes-128-ctr, aes-128-ecb, aes-128-ofb
Cifrado AES-128
aes192, aes-192-cbc, aes-192-cfb, aes-192-ctr, aes-192-ecb, aes-192-ofb
Cifrado AES-192
aes256, aes-256-cbc, aes-256-cfb, aes-256-ctr, aes-256-ecb, aes-256-ofb
Cifrado AES-256
aria128, aria-128-cbc, aria-128-cfb, aria-128-ctr, aria-128-ecb, aria-128-ofb
Cifrado Aria-128
aria192, aria-192-cbc, aria-192-cfb, aria-192-ctr, aria-192-ecb, aria-192-ofb
Cifrado Aria-192
aria256, aria-256-cbc, aria-256-cfb, aria-256-ctr, aria-256-ecb, aria-256-ofb
Cifrado Aria-256
base64
Codificación Base64
bf, bf-cbc, bf-cfb, bf-ecb, bf-ofb
Cifrado Blowfish
camellia128, camellia-128-cbc, camellia-128-cfb, camellia-128-ctr, camellia-128-ecb,
camellia-128-ofb
Cifrado Camellia-128
camellia192, camellia-192-cbc, camellia-192-cfb, camellia-192-ctr, camellia-192-ecb,
camellia-192-ofb
Cifrado Camellia-192
camellia256, camellia-256-cbc, camellia-256-cfb, camellia-256-ctr, camellia-256-ecb,
camellia-256-ofb
Cifrado Camellia-256
cast, cast-cbc
Cifrado CAST
cast5-cbc, cast5-cfb, cast5-ecb, cast5-ofb
Cifrado CAST5
chacha20
Cifrado Chacha20
des, des-cbc, des-cfb, des-ecb, des-ede, des-ede-cbc, des-ede-cfb, des-ede-ofb, des-ofb
Cifrado DES
des3, desx, des-ede3, des-ede3-cbc, des-ede3-cfb, des-ede3-ofb
Cifrado Triple-DES
idea, idea-cbc, idea-cfb, idea-ecb, idea-ofb
Cifrado IDEA
rc2, rc2-cbc, rc2-cfb, rc2-ecb, rc2-ofb
Cifrado RC2
rc4
Cifrado RC4
rc5, rc5-cbc, rc5-cfb, rc5-ecb, rc5-ofb
Cifrado RC5
seed, seed-cbc, seed-cfb, seed-ecb, seed-ofb
Cifra SEED
sm4, sm4-cbc, sm4-cfb, sm4-ctr, sm4-ecb, sm4-ofb
Cifra SM4
OPCIONES
Los detalles de las opciones disponibles dependen del comando específico. Esta sección describe algunas opciones comunes con un comportamiento común.
Opciones del programa
Estas opciones se pueden especificar sin especificar un comando para obtener ayuda o información de la versión.
-help
Proporciona un resumen conciso de todas las opciones. Para obtener información más detallada, cada comando admite una opción -help. Acepta --help también.
-version
Proporciona un resumen conciso de la versión del programa openssl. Para obtener información más detallada, consulte openssl-version(1). Acepta --version también.
Opciones comunes
-help
Si una opción requiere un argumento, también se indica el "tipo" de argumento.
-- Esto termina la lista de opciones. Es útil principalmente si los parámetros de nombre de archivo comienzan con un signo menos:
openssl verify [flags...] -- -cert1.pem...
Opciones de formato
Consulte la página de manual openssl-format-options(1).
Opciones de frase de contraseña
Consulte la página de manual openssl-passphrase-options(1).
Opciones del estado aleatorio
Antes de OpenSSL 1.1.1, era común que las aplicaciones almacenaran información sobre el estado del generador de números aleatorios en un archivo que se cargaba al inicio y se volvía a escribir al salir. En los sistemas operativos modernos, esto ya no es necesario, ya que OpenSSL se inicializará automáticamente a partir de una fuente de entropía confiable proporcionada por el sistema operativo. Estas marcas aún son compatibles para plataformas o circunstancias especiales que puedan requerirlas.
Generalmente, es un error usar el mismo archivo de semilla más de una vez, y cada uso de -rand debe emparejarse con -writerand.
-rand archivos
Un archivo o archivos que contienen datos aleatorios que se utilizan para inicializar el generador de números aleatorios. Se pueden especificar varios archivos separados por un carácter dependiente del sistema operativo. El separador es ";" para MSWindows, "," para OpenVMS y ":" para todos los demás. Otra forma de especificar varios archivos es repetir esta marca con diferentes nombres de archivo.
-writerand archivo
Escribe los datos de la semilla en el archivo especificado al salir. Este archivo se puede utilizar en una invocación de comando posterior.
Opciones de verificación de certificados
Consulte la página de manual openssl-verification-options(1).
Opciones de formato de nombre
Consulte la página de manual openssl-namedisplay-options(1).
Opciones de versión de TLS
Varios comandos utilizan SSL, TLS o DTLS. De forma predeterminada, los comandos utilizan TLS, y los clientes ofrecerán la versión de protocolo más baja y más alta que admitan, y los servidores seleccionarán la versión más alta que el cliente ofrezca y que también sea compatible con el servidor.
Las opciones a continuación se pueden utilizar para limitar qué versiones de protocolo se utilizan y si se utiliza TCP (SSL y TLS) o UDP (DTLS). Tenga en cuenta que no todos los protocolos y marcas pueden estar disponibles, según cómo se haya compilado OpenSSL.
-ssl3, -tls1, -tls1_1, -tls1_2, -tls1_3, -no_ssl3, -no_tls1, -no_tls1_1, -no_tls1_2, -no_tls1_3
Estas opciones requieren o deshabilitan el uso de los protocolos SSL o TLS especificados. Cuando se requiere una versión específica de TLS, solo se ofrecerá o aceptará esa versión. Solo se puede proporcionar un protocolo específico y no se puede combinar con ninguna de las opciones no_. Las opciones no_* no funcionan con los comandos s_time y ciphers, pero funcionan con los comandos s_client y s_server.
-dtls, -dtls1, -dtls1_2
Estas opciones especifican el uso de DTLS en lugar de TLS. Con -dtls, los clientes negociarán cualquier versión de protocolo DTLS admitida. Use las opciones -dtls1 o -dtls1_2 para admitir solo DTLS1.0 o DTLS1.2, respectivamente.
Opciones de motor
-engine id
Carga el motor identificado por id y usa todos los métodos que implementa (algoritmos, almacenamiento de claves, etc.), a menos que se especifique lo contrario en la documentación específica del comando o que esté configurado para hacerlo, como se describe en "Configuración del motor" en config(5).
El motor se utilizará para los ID de clave especificados con -key y opciones similares cuando se proporciona una opción como -keyform engine.
Un caso especial es el motor "loader_attic", que está destinado solo a fines de prueba interna de OpenSSL y admite la carga de claves, parámetros, certificados y CRL de archivos. Cuando se usa este motor, los archivos con dichas credenciales se leen a través de este motor. El uso del esquema "file:" es opcional; un nombre de archivo simple (ruta) servirá.
Las opciones que especifican claves, como -key y similares, pueden usar el esquema de carga de claves genérico del motor OpenSSL "org.openssl.engine:" para recuperar claves privadas y públicas. La sintaxis URI es la siguiente, en forma simplificada:
org.openssl.engine:{engineid}:{keyid}
Donde "{engineid}" es la identidad/nombre del motor y "{keyid}" es un identificador de clave aceptable por ese motor. Por ejemplo, cuando se utiliza un motor que se interopera con una implementación PKCS#11, el URI genérico de clave sería algo como esto (este es un ejemplo del motor PKCS#11 que forma parte de OpenSC):
-key org.openssl.engine:pkcs11:label_some-private-key
Como tercera posibilidad, para los motores y proveedores que han implementado su propio OSSL_STORE_LOADER(3), "org.openssl.engine:" no debería ser necesario. Para una implementación PKCS#11 que ha implementado un cargador, se debería poder usar directamente el URI PKCS#11 definido en RFC 7512:
-key pkcs11:object=some-private-key;pin-value=1234
Opciones de proveedor
-provider name
Carga e inicializa el proveedor identificado por nombre. El nombre también puede ser una ruta al módulo del proveedor. En ese caso, el nombre del proveedor será la ruta especificada y no solo el nombre del módulo del proveedor. La interpretación de las rutas relativas es específica de la plataforma. La ruta configurada "MODULESDIR", la variable de entorno OPENSSL_MODULES o la ruta especificada por -provider-path se antepone a las rutas relativas. Consulte provider(7) para obtener una descripción más detallada.
-provider-path path
Especifica la ruta de búsqueda que se utilizará para buscar proveedores. De manera equivalente, se puede establecer la variable de entorno OPENSSL_MODULES.
-provparam [nombre:]clave=valor
Establece el parámetro de configuración clave en el valor valor en el proveedor nombre (opcional); si no se especifica el nombre, la configuración se aplicará a todos los proveedores cargados. Esta opción se puede especificar varias veces para establecer múltiples parámetros. Las opciones que especifican proveedores no predeterminados para cargar deben preceder a esta opción si la configuración está destinada a aplicarse a los proveedores que se van a cargar. Los parámetros que solo afectan la inicialización del proveedor, por el momento, deben establecerse en el archivo de configuración; solo los parámetros que también se consultan según sea necesario más adelante tienen algún efecto cuando se establecen a través de esta interfaz. Solo se admiten parámetros de tipo UTF8-string. Consulte la documentación del proveedor específico y los algoritmos asociados para conocer los parámetros admitidos.
-propquery propq
Especifica la cláusula de consulta de propiedades que se utilizará al recuperar algoritmos de los proveedores cargados. Consulte property(7) para obtener una descripción más detallada.
ENTORNO
Las bibliotecas OpenSSL pueden tomar algunos parámetros de configuración del entorno.
Para obtener información sobre todas las variables de entorno utilizadas por las bibliotecas OpenSSL, como OPENSSL_CONF, OPENSSL_MODULES y OPENSSL_TRACE, consulte openssl-env(7).
Para obtener información sobre el uso de variables de entorno en la configuración, consulte "ENTORNO" en config(5).
Para obtener información sobre comandos específicos, consulte openssl-engine(1), openssl-rehash(1) y tsget(1).
Para obtener información sobre cómo consultar o especificar indicadores de arquitectura de CPU, consulte OPENSSL_ia32cap(3), OPENSSL_s390xcap(3) y OPENSSL_riscvcap(3).
VÉASE TAMBIÉN
openssl-asn1parse(1), openssl-ca(1), openssl-ciphers(1), openssl-cms(1), openssl-crl(1),
openssl-crl2pkcs7(1), openssl-dgst(1), openssl-dhparam(1), openssl-dsa(1), openssl-dsaparam(1),
openssl-ec(1), openssl-ecparam(1), openssl-enc(1), openssl-engine(1), openssl-errstr(1),
openssl-gendsa(1), openssl-genpkey(1), openssl-genrsa(1), openssl-kdf(1), openssl-list(1),
openssl-mac(1), openssl-nseq(1), openssl-ocsp(1), openssl-passwd(1), openssl-pkcs12(1),
openssl-pkcs7(1), openssl-pkcs8(1), openssl-pkey(1), openssl-pkeyparam(1), openssl-pkeyutl(1),
openssl-prime(1), openssl-rand(1), openssl-rehash(1), openssl-req(1), openssl-rsa(1),
openssl-rsautl(1), openssl-s_client(1), openssl-s_server(1), openssl-s_time(1),
openssl-sess_id(1), openssl-smime(1), openssl-speed(1), openssl-spkac(1), openssl-srp(1),
openssl-storeutl(1), openssl-ts(1), openssl-verify(1), openssl-version(1), openssl-x509(1),
config(5), crypto(7), openssl-env(7), ssl(7), x509v3_config(5).
HISTORIA
Las opciones -XXX-algorithms se agregaron en OpenSSL 1.0.0; para obtener notas sobre la disponibilidad de otros comandos, consulte sus páginas de manual individuales.
La opción -issuer_checks está obsoleta a partir de OpenSSL 1.1.0 y se ignora silenciosamente.
Las opciones -xcertform y -xkeyform son obsoletas desde OpenSSL 3.0 y no tienen ningún efecto.
El modo interactivo, que se podía invocar ejecutando "openssl" sin más argumentos, se eliminó en OpenSSL 3.0, y ejecutar ese programa sin argumentos ahora es equivalente a "openssl help".
DERECHOS DE AUTOR
Copyright 2000-2025 The OpenSSL Project Authors. Todos los derechos reservados.
Con licencia Apache License 2.0 (la "Licencia"). No puede utilizar este archivo excepto en cumplimiento con la Licencia. Puede obtener una copia en el archivo LICENSE en la distribución de origen o en [https://www.openssl.org/source/license.html].