Ferramenta para gerar e testar certificados SSL

Última atualização: 21/09/2013

A ferramenta mais conhecida para geração de certificados no Linux faz parte do toolkit OpenSSL. Esse toolkit é utilizado por quase todas as aplicações que implementam SSL/TLS, como os servidores HTTP Apache e Nginx.

Normalmente, a obtenção de um certificado digital, necessário para a criptografia assimétrica usada na comunicação entre o servidor HTTP e o cliente, pode ocorrer de duas formas: pela criação de um certificado autoassinado, cuja autenticidade não é garantida por uma entidade certificadora; ou pela criação de um CSR, que será usado por uma entidade certificadora para gerar um certificado digital assinado, cuja autenticidade será garantida pela certificadora.

Comando para criar o arquivo CSR (Certificate Signing Request) ​

openssl req -new -newkey rsa:2048 -sha256 -nodes -keyout chave.key -out requisicao.csr

Guarde bem a chave privada! Se ela for perdida, você não conseguirá usar o certificado digital gerado pela sua certificadora.

Devido a uma atualização no Google Chrome, recomenda-se a geração de certificados com o parâmetro -sha256 para que não ocorram erros de certificados gerados com algoritmo SHA1 a partir de novembro de 2014.

Comando para conferir os dados digitados no CSR ​

openssl req -in requisicao.csr -noout -text

Comando para gerar um CSR a partir de uma chave privada já existente ​

openssl req -key chavePrivada.key -new -out requisicao.csr

Comando para criar um certificado autoassinado (self-signed) ​

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout chavePrivada.key -out certificado.crt

Comando para conferir os dados de um certificado ​

openssl x509 -in certificado.crt -text -noout

Comando para remover a senha de uma chave privada ​

openssl rsa -in chave.key -out chavePrivadaSemSenha.key

Comando para conferir o MD5 das chaves, CRT e CSR ​

openssl x509 -noout -modulus -in certificado.crt | openssl md5openssl rsa -noout -modulus -in chave.key | openssl md5openssl req -noout -modulus -in requisicao.csr | openssl md5