1
resposta

[Dúvida] Como gerar certificados SSL com OpenSSL no windows ( usando um site confiável)?

Estou tentando gerar certificados autoassinados para meu projeto usando Git Bash, mas ele retorna erro. Pesquisei e vi que o Git Bash não inclui o OpenSSL completo e também os comandos que eu pesquisei para gerar são para linux, então gostaria de saber:

1 - Qual é a forma mais confiável de instalar o OpenSSL no Windows (por exemplo, o site seguro) ?
2 - Após instalar, quais comandos exatos devo usar no CMD para gerar os certificados (Lembrando que é para windows)?

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
1 resposta

Olá Flávia. Tudo bem?
Veja se as informações abaixo podem te ajudar.
Opções confiáveis (comumente usadas):

  • Site oficial do OpenSSL (https://www.openssl.org) — fornece código‑fonte; não distribui oficialmente binários Windows. Útil se você quiser compilar.
  • Shining Light Productions (Win32/Win64 OpenSSL) — pacotes pré‑compilados populares para Windows (procure “Win64 OpenSSL” no site do autor). Muito usado.
  • Gerenciadores de pacote para Windows:
    • Chocolatey (choco) — choco install openssl.light ou choco install openssl (precisa ter Chocolatey instalado).
    • Scoopscoop install openssl.
    • MSYS2 / pacmanpacman -S mingw-w64-x86_64-openssl se você usa ambiente MSYS2 (bom para devs).
  • MSI/EXE de terceiros: prefira Shining Light ou gerenciadores de pacote ao invés de binários aleatórios. Sempre baixe de sites conhecidos e verifique assinatura/MD5 quando disponível.
    Se quer a forma mais simples e segura para a maioria dos usuários Windows, usar o instalador Win64 OpenSSL do Shining Light (ou choco install openssl.light) é geralmente a maneira mais direta.
    Abaixo eu mostro comandos que você pode executar no Prompt de Comando (CMD) , não PowerShell ,supondo que openssl já esteja no PATH. Se estiver usando PowerShell, os comandos funcionam também, mas atenção às aspas e expansão de variável.
    Esse comando cria key.pem e cert.pem em um único passo:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout key.pem -out cert.pem -subj "/C=BR/ST=Sao Paulo/L=Sao Paulo/O=MinhaEmpresa/OU=Dev/CN=localhost"
  • -x509 → gera certificado autoassinado em vez de somente CSR.
  • -nodes → sem criptografia na chave privada (útil para servidores que precisam ler a chave sem senha).
  • -days 365 → validade em dias (mude conforme precisar).
  • -subj → define os campos do DN (modifique para seus valores). Para CN use o hostname (ex.: localhost ou meudominio.com).
  • Se você precisa importar no Windows Certificate Store ou no IIS, converta para .pfx:
openssl pkcs12 -export -out cert.pfx -inkey key.pem -in cert.pem -passout pass:MinhaSenhaSegura
  • Troque MinhaSenhaSegura por uma senha real; ou use -passout pass: vazio (não recomendado).
  • Depois importe cert.pfx no Windows (MMC → Certificados) ou via IIS.

O -subj não define SANs. Para ter SANs é preciso usar um arquivo de configuração. Exemplo:

  1. Crie um arquivo openssl-san.cnf (pode usar Notepad). Conteúdo mínimo:
[ req ]
default_bits       = 2048
prompt             = no
default_md         = sha256
distinguished_name = dn
req_extensions     = v3_req

[ dn ]
C  = BR
ST = Sao Paulo
L  = Sao Paulo
O  = MinhaEmpresa
OU = Dev
CN = localhost

[ v3_req ]
subjectAltName = @alt_names

[ alt_names ]
DNS.1 = localhost
DNS.2 = meusite.local
IP.1  = 127.0.0.1
  1. No CMD, gere chave + CSR usando o config:
openssl req -new -nodes -newkey rsa:2048 -keyout key.pem -out csr.pem -config openssl-san.cnf
  1. Assine a CSR para gerar o certificado com as extensões SAN (autoassinando):
openssl x509 -req -in csr.pem -signkey key.pem -out cert.pem -days 365 -extensions v3_req -extfile openssl-san.cnf

Agora cert.pem contém o SAN e key.pem a chave.

  • PEM para CRT (às vezes .crt é só .pem com outro sufixo):
copy cert.pem cert.crt
  • Se precisar de key sem cabeçalho ou outra forma, normalmente o key.pem já é legível.

Dicas:

  • Adicionar openssl ao PATH: durante instalação selecione a opção para adicionar ao PATH, ou adicione manualmente %ProgramFiles%\OpenSSL-Win64\bin (ou onde instalou).
  • Executar CMD como administrador só é necessário para instalar/importar em locais protegidos. Geração de arquivos não precisa.
  • Para uso local (desenvolvimento), CN=localhost e SAN com localhost e 127.0.0.1 resolvem os erros de certificado nos navegadores.
  • Navegadores podem ainda rejeitar o certificado se não for confiável — para desenvolvimento você pode importar o .pfx para o armazenamento de Autoridades de Certificação Confiáveis (Root) no Windows (apenas para devs em máquina local; não faça isso em produção sem entender implicações de segurança).
    Se tiver alguma duvida comente ai e envie um feedback de qualquer maneira.
    Bons estudos.
    Até...
    :)