Gerar certificados SSL pode ser uma tarefa assustadora, cheia de frustração e tristeza. Mas não precisa ser assim! Se você tiver o Windows 10 e OpenSSL, juntamente com um pouco de ajuda deste tutorial, estará bem encaminhado.
Neste artigo, você aprenderá como instalar o OpenSSL no Windows 10. Uma vez instalado, você poderá gerar certificados SSL, solucionar problemas e depurar certificados, e converter entre formatos.
Vamos começar a dominar o OpenSSL no Windows 10 com o PowerShell!
Relacionado: Gerenciando Certificados com o Gerenciador de Certificados do Windows e PowerShell
Pré-requisitos
Neste artigo, você aprenderá usando uma abordagem prática. Embora o OpenSSL historicamente seja uma utilidade do sistema operacional Linux, você também pode usá-lo com o sistema operacional Windows.
- A Windows system with Local Administrator rights – The tutorial will be using Windows 10
- Windows PowerShell 5.1 (vem com o Windows) ou PowerShell 7
- Chocolatey – Um gerenciador de pacotes para Windows instalado.
- PowerShell ISE, Visual Studio Code ou qualquer editor de texto de sua escolha
Todas as capturas de tela neste guia foram feitas no Windows 10 build 1909 e PowerShell 7.
Instalando o OpenSSL no Windows 10 com PowerShell e Chocolatey
Assumindo que você tenha instalado o Chocolatey usando as instruções de instalação, sua primeira tarefa é instalar o OpenSSL no Windows 10. Para fazer isso, abra o console do PowerShell e execute o comando choco install OpenSSL.Light
, conforme mostrado abaixo.

É isso! Você agora instalou o OpenSSL com o PowerShell.
Configure um Diretório de Trabalho
Este tutorial criará alguns certificados para aprendizado. Para garantir que todo o trabalho realizado aqui esteja contido em uma única pasta que você possa limpar posteriormente, vá em frente e crie uma.
Este tutorial armazenará todos os certificados e arquivos relacionados na pasta C:\certs. Você pode criar uma pasta com o PowerShell executando o comando abaixo.
Agora é hora de configurar o OpenSSL.
Configurando o OpenSSL
Por padrão, o OpenSSL no Windows 10 não vem com um arquivo de configuração. Isso é intencional porque existem muitas opções de configuração que você pode personalizar. Para os propósitos deste guia, você vai usar uma configuração de exemplo que pode ser personalizada posteriormente para atender melhor aos seus requisitos de segurança.
Abra o PowerShell e execute o comando abaixo. Este comando baixa um arquivo de configuração de exemplo do MIT e o salva como openssl.cnf no diretório de trabalho atual.
Agora você pode abrir o arquivo openssl.cnf e deve ver algo parecido com o abaixo.

O download da configuração funcionará como está por enquanto. Não use os padrões em um ambiente de produção!
Atualizar as Variáveis de Ambiente do Perfil do PowerShell
Para que as coisas funcionem sem problemas, você deve modificar seu perfil do PowerShell no Windows 10. Configurar algumas variáveis de ambiente permite que você alterne facilmente entre diferentes versões do OpenSSL que você pode ter instalado.
I suggest adding two environment variables to your PowerShell profile called path
and OPENSSL_CONF
. You will update the PATH
environment variable to ensure you can run the openssl binary in any location while on the command line.
Abaixo, você verá uma maneira de criar um perfil do PowerShell, caso ainda não tenha um. Este comando adiciona o caminho binário do OpenSSL ao seu PATH
e atribui o caminho do arquivo de configuração a OPENSSL_CONF
.
Para usar as variáveis de ambiente, recarregue seu perfil digitando . $profile
ou apenas feche e reabra o PowerShell.
Agora você pode invocar facilmente o binário openssl de qualquer lugar no PowerShell, como mostrado abaixo.

Usando o OpenSSL no Windows 10 para Gerar um CSR e Chave Privada
Antes de poder criar um certificado SSL, você deve gerar uma solicitação de assinatura de certificado (CSR). Um CSR é um arquivo codificado que permite compartilhar sua chave pública com uma autoridade de certificação (CA). Este arquivo contém informações de identificação, um algoritmo de assinatura e uma assinatura digital. Vamos criar sua primeira CSR e chave privada.
Relacionado: Seu Guia para Certificados X509 para Mortais
Para criar uma CSR, execute o seguinte comando. O OpenSSL solicitará que você insira algumas informações de identificação, como demonstrado a seguir.

Após a conclusão, você terá uma CSR válida e uma chave privada que podem ser usadas para emitir um certificado SSL para você.
As configurações padrão do arquivo de configuração podem ser editadas ainda mais para agilizar esse processo, caso você não queira inserir dados toda vez que gerar uma CSR.
Você pode ler mais sobre as opções de CSR disponíveis e visualizar configurações de exemplo nas páginas de manual. O OpenSSL também possui um repositório ativo no GitHub com exemplos.
Geração de Pares de Chaves RSA
Você também pode criar pares de chaves RSA (públicas/privadas) com o OpenSSL. Para fazer isso, primeiro crie uma chave privada usando o subcomando genrsa
conforme mostrado abaixo.
Quando você executa o comando abaixo, o OpenSSL no Windows 10 irá gerar uma chave privada RSA com um comprimento de chave de 2048 bits. Essa chave é gerada quase imediatamente em hardware moderno. A chave resultante é exibida no diretório de trabalho
Em seguida, gere uma chave pública usando a chave privada que você acabou de criar usando o subcomando rsa
. A sintaxe abaixo criará uma chave pública chamada rsa.public no diretório de trabalho a partir da chave privada rsa.private.
Gerando um Certificado Autoassinado
Em algumas ocasiões, você pode precisar gerar um certificado autoassinado. Certificados autoassinados são adequados para uso em laboratório, mas não são uma prática segura para ambientes de produção.
Vamos criar um certificado autoassinado antes de passar para a próxima tarefa. Para fazer isso, insira o comando abaixo para criar um certificado SSL X509. Este certificado usará criptografia SHA256 e será válido por 365 dias usando um comprimento de chave RSA de 2048 bits. O certificado será salvo no diretório de trabalho.
Agora você está pronto para importar o certificado para um navegador ou servidor.
Validando CSRs, Certificados e Chaves com o OpenSSL
Verificando as informações em um CSR, chave privada, certificado ou PKCS#12 pode economizar tempo na resolução de erros SSL. Às vezes, uma chave incorreta pode ter sido usada para criar um certificado, por exemplo. Você pode ter as informações de identificação erradas no certificado.
Vamos começar verificando um CSR usando o comando req
e alguns parâmetros:

Detalhes como nome do país, nome da organização e o endereço de e-mail que você inseriu ao criar o CSR no início deste guia devem coincidir precisamente.
Você também pode verificar um certificado usando o subcomando x509
com alguns parâmetros:

Convertendo Certificados com o OpenSSL
Existem ocasiões em que uma aplicação não utiliza um formato específico de certificado. Você pode encontrar esse problema com uma aplicação chamada HAproxy, por exemplo, que requer um certificado PEM quando você pode ter um certificado formatado como DER (.crt .cer .der).
Para demonstrar a conversão de um certificado, vamos converter o certificado autoassinado criado anteriormente em formato DER (certificate.crt) para PEM. Use o código no trecho de código a seguir para fazer isso.
Este comando abaixo utiliza o subcomando x509
com o parâmetro -inform
, que deve coincidir com o formato do arquivo -in
, seguido do formato -out
.
Você também pode inverter a ordem se desejar converter para o formato DER a partir de PEM, como mostrado abaixo.
E por último, mas não menos importante, você pode converter PKCS#12 para PEM e PEM para PKCS#12. Este é um tipo de arquivo que contém chaves privadas e certificados. Para converter para o formato PEM, utilize o subcomando pkcs12
.
Você também pode converter um certificado PEM e chave privada para o formato PKCS#12 usando -export
com algumas opções adicionais. Abaixo está a exportação de um certificado formatado em PKCS#12 usando sua chave privada através de SomeCertificate.crt
como fonte de entrada. O uso da opção -certfile
com o valor MyCACert.crt
permite validar SomeCertificate.crt
.
Resolução de Problemas e Depuração
Agora que você pode criar e converter CSR’s, certificados e pares de chaves, é hora de aprender a solucionar e depurar problemas. O OpenSSL oferece comandos que facilitam a resolução de problemas.
O OpenSSL também permite verificar certificados quanto à integridade do arquivo e testar possíveis corrupções de dados. Utilizando um checksum MD5, você pode usar os seguintes exemplos de código para testar certificados, chaves e CSR’s:
Depois de obter o hash original, você pode compará-lo com um hash atual para verificar se o certificado não foi modificado ou corrompido.
Aqui está um exemplo de como esse código se parece quando executado no PowerShell:

Resumo
Neste artigo, você aprendeu como instalar e configurar o OpenSSL no Windows 10, criar uma CSR, par de chaves e certificado SSL. Você também aprendeu como converter entre diferentes formatos de certificados e fazer algumas soluções básicas de problemas usando subcomandos integrados.