Gerando certificados digitais auto-assinados com OpenSSL

O OpenSSL permite requisitar, assinar, gerar, exportar e converter certificados digitais. Ele está disponível como pacote ou pode ser compilado em todos os sabores de UNIX. Este guia irá explicar como gerar um repositório de chaves para certificados digitais, gerar certificados SSL privados e auto-assinados para servidores web, e exportar/converter o repositórios de chaves para um arquivo PFX (para importá-los em plataformas Windows). O guia abaixo foi testado em plataformas de servidores web comuns no Linux (Apache, Lighttpd, Nginx, Resin), entretanto a sintaxe seja provavelmente a mesma no Windows (ressalvando os caminhos dos arquivos).

openssl

 

Na grande maioria dos sistemas UNIX-like, como o Ubuntu Linux, o openssl já vem instalado; se você utiliza Windows, baixe os binários aqui.

  1. Instale o OpenSSL.
  2. Execute o comando abaixo para gerar um repositório de chaves chamado “server.key”:
    openssl genrsa -des3 -out /tmp/server.key 1024
  3. Execute os comandos abaixo para requisitar um novo certificado SSL:
    openssl req -new -x509 -nodes -sha1 -days 1095 -key /tmp/server.key > /tmp/server.crt openssl x509 -noout -fingerprint -text /tmp/server.info
  4. Execute o comando abaixo para fazer uma cópia do repositório de chaves que tenha uma senha:
    cp /tmp/server.key /tmp/server.key.bak
  5. Execute o comando abaixo para gerar um novo repositório de chaves sem uma senha:
    openssl rsa -in /tmp/server.key -out /tmp/no.pwd.server.key
  6. Execute o comando abaixo apenas se você necessita gerar um arquivo PEM que contenha concatenado o repositório de chaves e a chave pública em um único arquivo:
    cat /tmp/no.pwd.server.key /tmp/server.crt > /tmp/no.pwd.server.pem
  7. Execute o comando abaixo apenas se você necessita exportar um repositório de chaves (sem senha) para um arquivo PFX (para importação em plataforma Windows):
    openssl pkcs12 -export -in /tmp/server.crt -inkey /tmp/no.pwd.server.key -certfile /tmp/no.pwd.server.pem -out /tmp/server.pfx

Apêndice:

  • server.key – Arquivo do Repositório de Chaves
  • server.crt – Arquivo da Chave Pública SSL do Servidor
  • no.pwd.server.key – Arquivo do Repositório de Chaves (sem senha)
  • no.pwd.server.pem – Arquivo do Repositório de Chaves + Chave Pública SSL do Servidor (sem senha)
  • server.pfx – Chave Privada + Chave Pública, exportável para plataforma Windows (ex. servidor IIS)

Tradução de: SecuriTeam Blogs » Generating self-signed SSL certificate using OpenSSL

Banner-CompTIA-Security+-Curso-Online-Oficial

Foto: Network Insecurity with OpenSSL por puerexmachina, CC-BY-SA.

Foto: OpenSSL Heartbleed por MedithIT, licenciada por Creative Commons.