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.
Bom material!
Você sabe o comando para eu verificar a assinatura de um arquivo descriptografado ?
Podes verificar da seguinte forma:
# verify signature
openssl req -in myreq.pem -noout -verify -key mykey.pem
E a informação completa do certificado com o comando:
# check info
openssl req -in myreq.pem -noout -text
./fapg
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
Renomeia o apaxe.crt para apache.pem e experimenta na tua NAS.
./fapg