Comandos openssl

Este post descreve os comandos da ferramenta OpenSSL, mais comuns.

Comandos OpenSSL comuns

Os seguinte comandos permitem gerar CSRs, certificados, chaves privadas e outras tarefas.

  • Gerar uma nova chave privada e um pedido de certificado (CSR):
    • openssl req -out CSR.csr -pubkey -new -keyout privateKey.key
    • openssl req -nodes -newkey rsa:2048 -keyout privateKey.key -out CSR.csr (este gera um pedido de certificado de 2048 bits)
  • Gerar um pedido de certificado (CSR) para uma chave privada já existente: openssl req -out CSR.csr -key privateKey.key -new
  • Gerar um pedido de certificado (CSR) baseado num certificado já existente: openssl x509 -x509toreq -in certificate.crt -out CSR.csr -signkey privateKey.key
  • Gerar um certificado auto-assinado (self-signed): openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout privateKey.key -out certificate.crt
  • Remover a palavra-chave de uma chave privada: openssl rsa -in privateKey.pem -out newPrivateKey.pem

Verificações utilizando o OpenSSL

Se for necessário verificar a informação de um certificado, CSR ou chave privada, os comandos usados podem ser os abaixo descritos.

  • Verificar um pedido de certificado (CSR): openssl req -text -noout -verify -in CSR.csr
  • Verificar uma chave privada: openssl rsa -in privateKey.key -check
  • Verificar um certificado: openssl x509 -in certificate.crt -text -noout
  • Verificar um ficheiro PKCS#12 (.pfx or .p12): openssl pkcs12 -info -in keyStore.p12

Conversões utilizando o OpenSSL

Os comandos descritos nesta secção, permitem converter certificados e chaves em diferentes formatos de forma a mante-los compativéis com determinados tipos de servidores ou software. Por exemplo, se se pretender converter um ficheiro PEM que funciona em Apache, para um PFX (PKCS#12) de modo a utiliza-lo no Tomcat ou IIS.

  • Converter um ficheiro DER (.crt .cer .der) para um ficheiro PEM: openssl x509 -inform der -in certificate.cer -out certificate.pem
  • Converter um ficheiro PEM para um ficheiro DER: openssl x509 -outform der -in certificate.pem -out certificate.der
  • Converter um ficheiro PKCS#12 (.pfx .p12) que contém uma chave privada e um certificado, para um ficheiro PEM: openssl pkcs12 -in keyStore.pfx -out keyStore.pem -nodesYou can add -nocerts to only output the private key or add -nokeys to only output the certificates.
  • Converter um ficheiro PEM e a sua chave privada para um ficheiro PKCS#12 (.pfx .p12): openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt

O site que descreve a ferramenta OpenSSL e muito mais, pode ser encontrado aqui.

4 thoughts on “Comandos openssl”

  1. Olá fapg! Parabéns pelo seu artigo.
    Necessitava de ajuda para o seguinte:
    Criei um certificado Auto-Assinado para usar no meu NAS QNAP TS-110 através do comando: req -x509 -nodes -days 365 -newkey rsa:1024 -keyout apaxe.key -out apaxe.crt .
    Como o meu NAS só permite que se importe certificados no formato X.509PEM usei o comando: x509 -inform der -in apaxe.crt -out certificate.pem , sem sucesso pois após este comando recebo a seguinte mensagem de erro:
    unable to load certificate
    3540:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:.\crypto\as
    n1\tasn_dec.c:1316:
    3540:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:.\
    crypto\asn1\tasn_dec.c:380:Type=X509
    error in x509

    Pode ajudar-me a explicar porque não consigo exportar o ficheiro DER em PEM?
    Eu estou a usar o Windows XP.
    Obrigado

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *