Manuales para la línea de comandos

Man » Manual de openssl en línea - documentación detallada en línea para la página de manual de openssl

🌍
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].