openssl - Programa de linha de comando OpenSSL
SINTAXE
openssl comando [ opções ... ] [ parâmetros ... ]
openssl no-XXX [ opções ]
openssl -help | -version
DESCRIÇÃO
OpenSSL é um conjunto de ferramentas de criptografia que implementa os protocolos de rede Secure Sockets Layer (SSL) e Transport Layer Security (TLS) e os padrões de criptografia relacionados exigidos por eles.
O programa openssl é um programa de linha de comando para usar as várias funções de criptografia da biblioteca de criptografia OpenSSL a partir do shell. Ele pode ser usado para:
o Criação e gerenciamento de chaves privadas, chaves públicas e parâmetros
o Operações de criptografia de chave pública
o Criação de certificados X.509, CSRs e CRLs
o Cálculo de resumos de mensagem e códigos de autenticação de mensagem
o Criptografia e descriptografia com cifras
o Testes de cliente e servidor SSL/TLS
o Tratamento de e-mails S/MIME assinados ou criptografados
o Solicitações de carimbo de data/hora, geração e verificação
RESUMO DE COMANDOS
O programa openssl fornece uma variedade rica de comandos (comando na "SINTAXE" acima). Cada comando pode ter muitas opções e parâmetros de argumento, mostrados acima como opções e parâmetros.
A documentação detalhada e os casos de uso da maioria dos subcomandos padrão estão disponíveis (por exemplo, openssl-x509(1)). O subcomando openssl-list(1) pode ser usado para listar subcomandos.
O comando no-XXX testa se um comando do nome especificado está disponível. Se nenhum comando com o nome XXX existir, ele retorna 0 (sucesso) e imprime no-XXX; caso contrário, ele retorna 1 e imprime XXX. Em ambos os casos, a saída é direcionada para stdout e nada é impresso em stderr. Argumentos de linha de comando adicionais são sempre ignorados. Como para cada cifra existe um comando com o mesmo nome, isso fornece uma maneira fácil para scripts shell testarem a disponibilidade de cifras no programa openssl. (no-XXX não consegue detectar pseudo-comandos como quit, list ou no-XXX ele próprio).
Opção de configuração
Muitos comandos usam um arquivo de configuração externo para alguns ou todos os seus argumentos e têm uma opção -config para especificar esse arquivo. O nome padrão do arquivo é openssl.cnf na área de armazenamento de certificados padrão, que pode ser determinado pelo comando openssl-version(1) usando a opção -d ou -a. A variável de ambiente OPENSSL_CONF pode ser usada para especificar um local de arquivo diferente ou para desativar o carregamento de uma configuração (usando uma string vazia).
Entre outras coisas, o arquivo de configuração pode ser usado para carregar módulos e especificar parâmetros para gerar certificados e números aleatórios. Consulte config(5) para obter detalhes.
Comandos padrão
asn1parse
Analisar uma sequência ASN.1.
ca Gerenciamento de Autoridade Certificadora (CA).
ciphers
Determinação da descrição do conjunto de cifras.
cms Comando CMS (Sintaxe de Mensagem Criptográfica).
crl Gerenciamento de Lista de Revogação de Certificados (CRL).
crl2pkcs7
Conversão de CRL para PKCS#7.
dgst
Cálculo de Hash de Mensagem. Os cálculos MAC são substituídos por openssl-mac(1).
dhparam
Geração e gerenciamento de parâmetros Diffie-Hellman. Substituído por openssl-genpkey(1) e
openssl-pkeyparam(1).
dsa Gerenciamento de Dados DSA.
dsaparam
Geração e gerenciamento de parâmetros DSA. Substituído por openssl-genpkey(1) e
openssl-pkeyparam(1).
ec Processamento de chave EC (Curva Elíptica).
ecparam
Manipulação e geração de parâmetros EC.
enc Criptografia, descriptografia e codificação.
engine
Informações e manipulação do motor (módulo carregável).
errstr
Conversão de Número de Erro para String de Erro.
fipsinstall
Instalação da configuração FIPS.
gendsa
Geração de Chave Privada DSA a partir de Parâmetros. Substituído por openssl-genpkey(1) e
openssl-pkey(1).
genpkey
Geração de Chave Privada ou Parâmetros.
genrsa
Geração de Chave Privada RSA. Substituído por openssl-genpkey(1).
help
Exibe informações sobre as opções de um comando.
info
Exibe diversas informações incorporadas nas bibliotecas OpenSSL.
kdf Funções de Derivação de Chave.
list
Lista algoritmos e recursos.
mac Cálculo de Código de Autenticação de Mensagem.
nseq
Cria ou examina uma sequência de certificados Netscape.
ocsp
Comando de Protocolo de Status de Certificado Online.
passwd
Geração de senhas criptografadas.
pkcs12
Gerenciamento de Dados PKCS#12.
pkcs7
Gerenciamento de Dados PKCS#7.
pkcs8
Comando de conversão de chave privada no formato PKCS#8.
pkey
Gerenciamento de chaves públicas e privadas.
pkeyparam
Gerenciamento de parâmetros de algoritmos de chave pública.
pkeyutl
Comando de operação criptográfica de algoritmos de chave pública.
prime
Calcula números primos.
rand
Gera bytes pseudoaleatórios.
rehash
Cria links simbólicos para arquivos de certificado e CRL nomeados pelos valores de hash.
req Gerenciamento de Solicitação de Certificado X.509 PKCS#10 (CSR).
rsa Gerenciamento de chave RSA.
rsautl
Comando RSA para assinatura, verificação, criptografia e descriptografia. Substituído por
openssl-pkeyutl(1).
s_client
Este implementa um cliente SSL/TLS genérico que pode estabelecer uma conexão transparente com um
servidor remoto que usa SSL/TLS. Ele é destinado apenas para fins de teste e fornece apenas
uma funcionalidade de interface rudimentar, mas internamente usa a maior parte da funcionalidade
da biblioteca ssl OpenSSL.
s_server
Este implementa um servidor SSL/TLS genérico que aceita conexões de clientes remotos que usam
SSL/TLS. Ele é destinado apenas para fins de teste e fornece apenas uma funcionalidade de
interface rudimentar, mas internamente usa a maior parte da funcionalidade da biblioteca ssl
OpenSSL. Ele fornece tanto um protocolo orientado por linha de comando próprio para testar
funções SSL quanto uma instalação de resposta HTTP simples para emular um servidor web com
consciência de SSL/TLS.
s_time
Temporizador de conexão SSL.
sess_id
Gerenciamento de dados de sessão SSL.
smime
Processamento de e-mail S/MIME.
speed
Medição da velocidade do algoritmo.
spkac
Comando para imprimir e gerar SPKAC.
srp
Mantém o arquivo de senhas SRP. Este comando está obsoleto.
storeutl
Comando para listar e exibir certificados, chaves, CRLs, etc.
ts
Comando da Autoridade de Marcação de Tempo.
verify
Verificação de certificado X.509. Veja também a página de manual openssl-verification-options(1).
version
Informações da versão OpenSSL.
x509
Gerenciamento de dados de certificado X.509.
Comandos de Hash de Mensagem
blake2b512
Hash BLAKE2b-512
blake2s256
Hash BLAKE2s-256
md2
Hash MD2
md4
Hash MD4
md5
Hash MD5
mdc2
Hash MDC2
rmd160
Hash RMD-160
sha1
Hash SHA-1
sha224
Hash SHA-2 224
sha256
Hash SHA-2 256
sha384
Hash SHA-2 384
sha512
Hash SHA-2 512
sha3-224
Hash SHA-3 224
sha3-256
Hash SHA-3 256
sha3-384
Hash SHA-3 384
sha3-512
Hash SHA-3 512
keccak-224
Hash KECCAK 224
keccak-256
Hash KECCAK 256
keccak-384
Hash KECCAK 384
keccak-512
Hash KECCAK 512
shake128
Hash SHA-3 SHAKE128
shake256
Hash SHA-3 SHAKE256
sm3
Hash SM3
Comandos de Criptografia, Descriptografia e Codificação
Os seguintes aliases fornecem acesso conveniente às codificações e cifras mais usadas.
Dependendo de como o OpenSSL foi configurado e compilado, nem todas as cifras listadas aqui podem estar presentes. Veja openssl-enc(1) para mais informações.
aes128, aes-128-cbc, aes-128-cfb, aes-128-ctr, aes-128-ecb, aes-128-ofb
Cifra AES-128
aes192, aes-192-cbc, aes-192-cfb, aes-192-ctr, aes-192-ecb, aes-192-ofb
Cifra AES-192
aes256, aes-256-cbc, aes-256-cfb, aes-256-ctr, aes-256-ecb, aes-256-ofb
Cifra AES-256
aria128, aria-128-cbc, aria-128-cfb, aria-128-ctr, aria-128-ecb, aria-128-ofb
Cifra Aria-128
aria192, aria-192-cbc, aria-192-cfb, aria-192-ctr, aria-192-ecb, aria-192-ofb
Cifra Aria-192
aria256, aria-256-cbc, aria-256-cfb, aria-256-ctr, aria-256-ecb, aria-256-ofb
Cifra Aria-256
base64
Codificação Base64
bf, bf-cbc, bf-cfb, bf-ecb, bf-ofb
Cifra Blowfish
camellia128, camellia-128-cbc, camellia-128-cfb, camellia-128-ctr, camellia-128-ecb,
camellia-128-ofb
Cifra Camellia-128
camellia192, camellia-192-cbc, camellia-192-cfb, camellia-192-ctr, camellia-192-ecb,
camellia-192-ofb
Cifra Camellia-192
camellia256, camellia-256-cbc, camellia-256-cfb, camellia-256-ctr, camellia-256-ecb,
camellia-256-ofb
Cifra Camellia-256
cast, cast-cbc
Cifra CAST
cast5-cbc, cast5-cfb, cast5-ecb, cast5-ofb
Cifra CAST5
chacha20
Cifra Chacha20
des, des-cbc, des-cfb, des-ecb, des-ede, des-ede-cbc, des-ede-cfb, des-ede-ofb, des-ofb
Cifra DES
des3, desx, des-ede3, des-ede3-cbc, des-ede3-cfb, des-ede3-ofb
Cifra Triple-DES
idea, idea-cbc, idea-cfb, idea-ecb, idea-ofb
Cifra IDEA
rc2, rc2-cbc, rc2-cfb, rc2-ecb, rc2-ofb
Cifra RC2
rc4
Cifra RC4
rc5, rc5-cbc, rc5-cfb, rc5-ecb, rc5-ofb
Cifra 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
OPÇÕES
Os detalhes das opções disponíveis dependem do comando específico. Esta seção descreve algumas opções comuns com comportamento comum.
Opções do Programa
Essas opções podem ser especificadas sem especificar um comando para obter ajuda ou informações da versão.
-help
Fornece um resumo conciso de todas as opções. Para obter informações mais detalhadas, cada comando suporta uma opção -help. Aceita --help também.
-version
Fornece um resumo conciso da versão do programa openssl. Para obter informações mais detalhadas, consulte openssl-version(1). Aceita --version também.
Opções Comuns
-help
Se uma opção aceitar um argumento, o "tipo" do argumento também é fornecido.
-- Isso termina a lista de opções. É mais útil se quaisquer parâmetros de nome de arquivo começarem
com um sinal de menos:
openssl verify [flags...] -- -cert1.pem...
Opções de Formato
Consulte openssl-format-options(1) para a página do manual.
Opções de Senha
Consulte a página do manual openssl-passphrase-options(1).
Opções de Estado Aleatório
Antes do OpenSSL 1.1.1, era comum que os aplicativos armazenassem informações sobre o estado do gerador de números aleatórios em um arquivo que era carregado na inicialização e reescrito ao sair. Em sistemas operacionais modernos, isso geralmente não é mais necessário, pois o OpenSSL se auto-alimentará a partir de uma fonte de entropia confiável fornecida pelo sistema operacional. Essas flags ainda são suportadas para plataformas ou circunstâncias especiais que possam exigi-las.
Geralmente, é um erro usar o mesmo arquivo de seed mais de uma vez e cada uso de -rand deve ser emparelhado com -writerand.
-rand arquivos
Um arquivo ou arquivos contendo dados aleatórios usados para alimentar o gerador de números aleatórios. Vários arquivos podem ser especificados separados por um caractere dependente do SO. O separador é ";" para MSWindows, "," para OpenVMS e ":" para todos os outros. Outra maneira de especificar vários arquivos é repetir esta flag com diferentes nomes de arquivo.
-writerand arquivo
Grava os dados de seed no arquivo especificado ao sair. Este arquivo pode ser usado em uma invocação de comando subsequente.
Opções de Verificação de Certificado
Consulte a página do manual openssl-verification-options(1).
Opções de Formato de Nome
Consulte a página do manual openssl-namedisplay-options(1).
Opções de Versão TLS
Vários comandos usam SSL, TLS ou DTLS. Por padrão, os comandos usam TLS e os clientes oferecerão a versão de protocolo mais baixa e mais alta que suportam, e os servidores escolherão a versão mais alta que o cliente oferece e que também é suportada pelo servidor.
As opções abaixo podem ser usadas para limitar quais versões de protocolo são usadas e se TCP (SSL e TLS) ou UDP (DTLS) são usados. Observe que nem todos os protocolos e flags podem estar disponíveis, dependendo de como o OpenSSL foi construído.
-ssl3, -tls1, -tls1_1, -tls1_2, -tls1_3, -no_ssl3, -no_tls1, -no_tls1_1, -no_tls1_2, -no_tls1_3
Essas opções exigem ou desativam o uso dos protocolos SSL ou TLS especificados. Quando uma versão TLS específica é necessária, apenas essa versão será oferecida ou aceita. Apenas um protocolo específico pode ser fornecido e não pode ser combinado com nenhuma das opções no_. As opções no_ não funcionam com os comandos s_time e ciphers, mas funcionam com os comandos s_client e s_server.
-dtls, -dtls1, -dtls1_2
Essas opções especificam o uso de DTLS em vez de TLS. Com -dtls, os clientes negociarão qualquer versão de protocolo DTLS suportada. Use as opções -dtls1 ou -dtls1_2 para dar suporte apenas ao DTLS1.0 ou DTLS1.2, respectivamente.
Opções de Engine
-engine id
Carrega a engine identificada por id e usa todos os métodos que ela implementa (algoritmos, armazenamento de chaves, etc.), a menos que especificado de outra forma na documentação específica do comando ou esteja configurado para fazê-lo, conforme descrito em "Configuração da Engine" em config(5).
A engine será usada para IDs de chave especificados com -key e opções semelhantes quando uma opção como -keyform engine for fornecida.
Um caso especial é a engine "loader_attic", que se destina apenas a testes internos do OpenSSL e oferece suporte ao carregamento de chaves, parâmetros, certificados e CRLs de arquivos. Quando esta engine é usada, os arquivos com tais credenciais são lidos através desta engine. O uso do esquema "file:" é opcional; um nome de arquivo simples (caminho) será suficiente.
As opções que especificam chaves, como -key e opções semelhantes, podem usar o esquema de URI de carregamento de chave da engine OpenSSL genérica "org.openssl.engine:" para recuperar chaves privadas e chaves públicas. A sintaxe do URI é a seguinte, em forma simplificada:
org.openssl.engine:{engineid}:{keyid}
Onde "{engineid}" é a identidade/nome da engine e "{keyid}" é um identificador de chave que é aceitável pela engine. Por exemplo, ao usar uma engine que se interface com uma implementação PKCS#11, o URI de chave genérico seria algo como isto (este é um exemplo da engine PKCS#11 que faz parte do OpenSC):
-key org.openssl.engine:pkcs11:label_some-private-key
Como terceira possibilidade, para engines e provedores que implementaram seu próprio OSSL_STORE_LOADER(3), "org.openssl.engine:" não deve ser necessário. Para uma implementação PKCS#11 que implementou tal carregador, o URI PKCS#11 conforme definido em RFC 7512 deve ser possível de usar diretamente:
-key pkcs11:object=some-private-key;pin-value=1234
Opções de Provedor
-provider name
Carrega e inicializa o provedor identificado pelo nome. O nome também pode ser um caminho para o módulo do provedor. Nesse caso, o nome do provedor será o caminho especificado e não apenas o nome do módulo do provedor. A interpretação de caminhos relativos é específica da plataforma. O caminho configurado "MODULESDIR", a variável de ambiente OPENSSL_MODULES ou o caminho especificado por -provider-path é adicionado como prefixo aos caminhos relativos. Veja provider(7) para uma descrição mais detalhada.
-provider-path path
Especifica o caminho de pesquisa a ser usado para procurar provedores. Equivalentemente, a variável de ambiente OPENSSL_MODULES pode ser definida.
-provparam [name:]key=value
Define o parâmetro de configuração key para o valor value no nome do provedor (opcional); se o nome não for especificado, a configuração será aplicada a todos os provedores carregados. Esta opção pode ser especificada várias vezes, para definir vários parâmetros. As opções que especificam provedores não padrão para carregar devem preceder esta opção se a configuração for destinada a ser aplicada aos provedores a serem carregados. Os parâmetros que afetam apenas a inicialização do provedor devem, por enquanto, ser definidos no arquivo de configuração; apenas os parâmetros que também são consultados conforme necessário têm algum efeito quando definidos por meio desta interface. Apenas parâmetros com valor de string UTF8 são suportados. Consulte a documentação do provedor específico e dos algoritmos associados para quaisquer parâmetros suportados.
-propquery propq
Especifica a cláusula de consulta de propriedade a ser usada ao buscar algoritmos dos provedores carregados. Consulte property(7) para uma descrição mais detalhada.
AMBIENTE
As bibliotecas OpenSSL podem receber alguns parâmetros de configuração do ambiente.
Para obter informações sobre todas as variáveis de ambiente usadas pelas bibliotecas OpenSSL, como OPENSSL_CONF, OPENSSL_MODULES e OPENSSL_TRACE, consulte openssl-env(7).
Para obter informações sobre o uso de variáveis de ambiente na configuração, consulte "AMBIENTE" em config(5).
Para obter informações sobre comandos específicos, consulte openssl-engine(1), openssl-rehash(1) e tsget(1).
Para obter informações sobre como consultar ou especificar sinalizadores de arquitetura de CPU, consulte OPENSSL_ia32cap(3), OPENSSL_s390xcap(3) e OPENSSL_riscvcap(3).
VEJA TAMBÉM
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).
HISTÓRICO
As opções -XXX-algorithms foram adicionadas no OpenSSL 1.0.0; Para obter notas sobre a disponibilidade de outros comandos, consulte suas páginas de manual individuais.
A opção -issuer_checks está obsoleta a partir do OpenSSL 1.1.0 e é ignorada silenciosamente.
As opções -xcertform e -xkeyform são obsoletas desde o OpenSSL 3.0 e não têm efeito.
O modo interativo, que podia ser invocado executando "openssl" sem argumentos adicionais, foi removido no OpenSSL 3.0, e executar esse programa sem argumentos agora é equivalente a "openssl help".
DIREITOS AUTORAIS
Copyright 2000-2025 The OpenSSL Project Authors. Todos os direitos reservados.
Licenciado sob a Licença Apache 2.0 ("Licença"). Você não pode usar este arquivo, exceto em conformidade com a Licença. Você pode obter uma cópia no arquivo LICENSE na distribuição de código-fonte ou em [https://www.openssl.org/source/license.html].