21 exemplos de OpenSSL para ajudá-lo no mundo real

Crie, gerencie e converta certificados SSL com OpenSSL

Um dos comandos mais populares em SSL para criar, converter e gerenciar os Certificados SSL é o OpenSSL.

Haverá muitas situações em que você terá que lidar com o OpenSSL de várias maneiras, e aqui as listei para você como uma folha de dicas útil.

Neste artigo, falarei sobre os comandos OpenSSL usados ​​com frequência para ajudá-lo no mundo real.

Algumas das abreviações relacionadas a certificados.

  • SSL – Secure Socket Layer
  • CSR – Solicitação de assinatura de certificado
  • TLS – Segurança da Camada de Transporte
  • PEM – Email de Privacidade Aprimorada
  • DER – Regras de Codificação Distintas
  • SHA – Algoritmo de hash seguro
  • PKCS – Padrões de Criptografia de Chave Pública

Observação: Curso de operação SSL/TLS seria útil se você não estiver familiarizado com os termos.

Crie uma nova chave privada e solicitação de assinatura de certificado

openssl req -out etechpt.com.csr -newkey rsa:2048 -nodes -keyout etechpt.com.key

O comando acima gerará CSR e um arquivo de chave RSA de 2048 bits. Se você pretende usar este certificado no Apache ou Nginx, então você precisa enviar este arquivo CSR para a autoridade do emissor do certificado, e eles lhe darão um certificado assinado principalmente no formato der ou pem que você precisa configurar no servidor web Apache ou Nginx .

  Como desativar a reprodução automática de trailers da Netflix

Criar um certificado autoassinado

openssl req -x509 -sha256 -nodes -newkey rsa:2048 -keyout gfselfsigned.key -out gfcert.pem

O comando acima gerará um certificado autoassinado e um arquivo de chave com RSA de 2.048 bits. Também incluí o sha256, pois é considerado o mais seguro no momento.

Dica: por padrão, ele gerará um certificado autoassinado válido por apenas um mês, portanto, considere definir o parâmetro –days para estender a validade.

Ex: ter autoassinado válido por dois anos.

openssl req -x509 -sha256 -nodes -days 730 -newkey rsa:2048 -keyout gfselfsigned.key -out gfcert.pem

Verifique o arquivo CSR

openssl req -noout -text -in etechpt.com.csr

A verificação é essencial para garantir que você está enviando o CSR para a autoridade do emissor com os detalhes necessários.

Criar chave privada RSA

openssl genrsa -out private.key 2048

Se você só precisa gerar a chave privada RSA, pode usar o comando acima. Incluí 2048 para criptografia mais forte.

Remover senha da chave

openssl rsa -in certkey.key -out nopassphrase.key

Se você estiver usando a senha no arquivo de chave e usando o Apache, toda vez que iniciar, deverá inserir a senha. Se você estiver incomodado com a digitação de uma senha, poderá usar o comando openssl rsa -in etechpt.com.key -check acima para remover a chave de senha de uma chave existente.

Verificar chave privada

openssl rsa -in certkey.key –check

Se você duvida do seu arquivo de chave, pode usar o comando acima para verificar.

  Crie o plano de negócios perfeito usando essas 9 ferramentas

Verificar arquivo de certificado

openssl x509 -in certfile.pem -text –noout

Se você deseja validar os dados do certificado, como CN, OU, etc., pode usar um comando acima que fornecerá detalhes do certificado.

Verifique a autoridade do signatário do certificado

openssl x509 -in certfile.pem -noout -issuer -issuer_hash

A autoridade do emissor do certificado assina todos os certificados e, caso seja necessário, verifique-os.

Verifique o valor de hash de um certificado

openssl x509 -noout -hash -in bestflare.pem

Converta o formato DER para PEM

openssl x509 –inform der –in sslcert.der –out sslcert.pem

Normalmente, a autoridade de certificação fornecerá o certificado SSL no formato .der e, se você precisar usá-los no formato apache ou .pem, o comando acima o ajudará.

Converta o formato PEM para DER

openssl x509 –outform der –in sslcert.pem –out sslcert.der

Caso precise alterar o formato .pem para .der

Converter certificado e chave privada para o formato PKCS#12

openssl pkcs12 –export –out sslcert.pfx –inkey key.pem –in sslcert.pem

Se você precisar usar um certificado com o aplicativo java ou com qualquer outro que aceite apenas o formato PKCS#12, você pode usar o comando acima, que irá gerar um único pfx contendo certificado e arquivo de chave.

Dica: você também pode incluir o certificado da cadeia passando –chain conforme abaixo.

openssl pkcs12 –export –out sslcert.pfx –inkey key.pem –in sslcert.pem -chain cacert.pem

Criar CSR usando uma chave privada existente

openssl req –out certificate.csr –key existing.key –new

Se você não deseja criar uma nova chave privada em vez de usar uma existente, pode usar o comando acima.

Verifique o conteúdo do certificado de formato PKCS12

openssl pkcs12 –info –nodes –in cert.p12

PKCS12 é um formato binário, portanto você não poderá visualizar o conteúdo no bloco de notas ou em outro editor. O comando acima ajudará você a ver o conteúdo do arquivo PKCS12.

  Corrigir o problema de resolução de tela cheia no NieR

Converter formato PKCS12 para certificado PEM

openssl pkcs12 –in cert.p12 –out cert.pem

Se você deseja usar o formato pkcs12 existente com o Apache ou apenas no formato pem, isso será útil.

Testar certificado SSL de determinado URL

openssl s_client -connect yoururl.com:443 –showcerts

Eu uso isso com bastante frequência para validar o certificado SSL de uma URL específica do servidor. Isso é muito útil para validar o protocolo, a cifra e os detalhes do certificado.

Descubra a versão do OpenSSL

openssl version

Se você é responsável por garantir que o OpenSSL seja seguro, provavelmente uma das primeiras coisas que você deve fazer é verificar a versão.

Verifique a data de expiração do certificado de arquivo PEM

openssl x509 -noout -in certificate.pem -dates

Útil se você planeja colocar algum monitoramento para verificar a validade. Ele mostrará uma data na sintaxe notBefore e notAfter. notAfter é aquele que você terá que verificar para confirmar se um certificado expirou ou ainda é válido.

Ex:

[[email protected] opt]# openssl x509 -noout -in bestflare.pem -dates
notBefore=Jul 4 14:02:45 2015 GMT
notAfter=Aug 4 09:46:42 2015 GMT
[[email protected] opt]#

Verifique a data de expiração do certificado do URL SSL

openssl s_client -connect secureurl.com:443 2>/dev/null | openssl x509 -noout –enddate

Outro recurso útil se você planeja monitorar a data de expiração do certificado SSL remotamente ou um URL específico.

Ex:

[[email protected] opt]# openssl s_client -connect google.com:443 2>/dev/null | openssl x509 -noout -enddate

notAfter=Dec 8 00:00:00 2015 GMT

Verifique se o SSL V2 ou V3 é aceito na URL

Para verificar o SSL V2

openssl s_client -connect secureurl.com:443 -ssl2

Para verificar o SSL V3

openssl s_client -connect secureurl.com:443 –ssl3

Para verificar o TLS 1.0

openssl s_client -connect secureurl.com:443 –tls1

Para verificar o TLS 1.1

openssl s_client -connect secureurl.com:443 –tls1_1

Para verificar o TLS 1.2

openssl s_client -connect secureurl.com:443 –tls1_2

Se você estiver protegendo um servidor da Web e precisar validar se o SSL V2/V3 está ativado ou não, use o comando acima. Se ativado, você obterá “CONNECTED” senão “falha de handshake”.

Verifique se a cifra específica é aceita na URL

openssl s_client -cipher 'ECDHE-ECDSA-AES256-SHA' -connect secureurl:443

Se você estiver trabalhando em descobertas de segurança e os resultados do teste de caneta mostrarem que algumas das cifras fracas são aceitas, então, para validar, você pode usar o comando acima.

Obviamente, você terá que alterar a cifra e o URL com os quais deseja testar. Se a cifra mencionada for aceita, você obterá “CONNECTED” senão “falha de handshake”.

Espero que os comandos acima ajudem você a saber mais sobre o OpenSSL para gerenciar certificados SSL para o seu site.