3 de julho de 2022 - Frederico Marinho

Como criar um certificado SSL gratuito no Windows

Esse artigo explica como gerar um certificado SSL gratuito com o Let’s Encrypt no Windows, através do uso do Ubuntu App e como copiar e guardar os arquivos PFX para aplicação em um servidor web.

Última revisão: 01/04/2023 (e não é mentira!)

Pré-requisitos

  • Computador com Windows 10 ou superior instalado.
  • Acesso ao FTP do servidor onde está hospedado o serviço vinculado ao domínio que receberá o certificado SSL

Instalando o Ubuntu App

O primeiro passo é instalar o Ubuntu app no Windows, que pode ser feito pelo próprio Microsoft Store.

Obs.: Antes é preciso instalar WSL (subsistema do Windows) usando o seguinte comando no prompt do Windows:

wsl --install

Só clicar em Adquirir e aguardar a instalação.

Depois de instalado, é só abrir a aplicação. Você terá um ambiente Linux simulado no seu Windows.

Instalar Certbot e OpenSSL

Essas são as ferramentas que você vai precisar para gerar os certificados e converter para o formato PFX.

  • Certbot: Ferramenta que gera o certificado
  • OpenSSL: Converte o certificado gerado pelo Certbot para o formato PFX, necessário para instalação em alguns servidores, como o Microsoft Azure.

Execute os comandos abaixo no Ubuntu app para instalar o Certbot via Snap:

sudo apt install snapd
sudo snap install core; sudo snap refresh core
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot

Agora instale o OpenSSL:

sudo apt-get install openssl

Basta aceitar a instalação pressionando Y quando for perguntado e as ferramentas serão instaladas.

Gerar o certificado para o domínio personalizado

Com o Certbot instalado, podemos agora fazer uma solicitação de certificado, um “desafio” junto ao Let’s Encrypt, que vai verificar se temos acesso ao domínio em questão.

Digite o comando abaixo no terminal Ubuntu app, substituindo o domínio de divera.com.br pelo seu domínio desejado:

sudo certbot certonly --preferred-challenges http -d divera.com.br --manual

No comando acima é usado a flag –manual para indicar que a verificação está sendo feita de um servidor diferente, já que não está sendo executado diretamente na máquina onde está hospedado o aplicativo ou site. O Microsoft Azure por exemplo não permite executar o comando diretamente.

Nota: esse passo especificamente vai gerar um certificado para o domínio exato que foi informado. Se for preciso acessar o site através do www por exemplo (provavelmente vai ser preciso), será necessário fazer o mesmo processo para o domínio com o www. Ex.:

sudo certbot certonly --preferred-challenges http -d www.divera.com.br --manual

Lembra-se de alterar www.divera.com.br com seu domínio desejado.

Após a execução do comando, você será questionado justamente sobre estar solicitando a geração de um certificado por um servidor que não tem o mesmo IP do servidor onde o domínio está vinculado. É preciso confirmar pressionando Y (Yes).

Agora é o momento onde provamos que temos acesso ao domínio. Será necessário fazer o upload de um arquivo com o nome e o local indicado no terminal. Veja o exemplo abaixo:

  • Pelo resultado acima, é necessário criar um arquivo de texto com o conteúdo:
P2HRnA1-feVr9mTd7U2vef0LiXRMFM8W0F3M5VrlkDU.tnkNZ-QqtRWqbpD6eVpgqMRseLcNhqfSsUCzi1B5CKw
  • Usei o Sublime como editor. Você pode usar o editor de texto preferido, só não vale usar Word, WPS ou Libreoffice, ok?
  • Salve com o nome:
P2HRnA1-feVr9mTd7U2vef0LiXRMFM8W0F3M5VrlkDU
  • E disponibilizá-lo para acesso no endereço:
http://seusite.com.br/.well-known/acme-challenge/P2HRnA1-feVr9mTd7U2vef0LiXRMFM8W0F3M5VrlkDU

Nota: essa informação de conteúdo e nome do arquivo vai variar para cada geração de certificado. Você deve usar o que foi sugerido pra você, os códigos desse artigo são apenas para exemplificação.

Agora é só conectar no FTP e fazer o upload do arquivo na pasta .well-known/acme-challenge do seu servidor. Lembrando que o arquivo não tem nenhuma extensão, deve ter exatamente o nome como foi solicitado. Assim que tiver feito o upload, pressione enter no terminal para continuar o processo.

Se tudo correu bem, você receberá esse aviso de Congratulations! E a localização dos arquivos criados do certificado.

Convertendo o certificado para PFX com o OpenSSL

Como falamos anteriormente, alguns servidores não aceitam o formato PEM, por isso precisam ser convertidos para PFX. Faça isso usando o OpenSSL com o comando abaixo:

sudo openssl pkcs12 -export -out /etc/letsencrypt/live/seusite.com.br/privkey.pfx -inkey /etc/letsencrypt/live/seusite.com.br/privkey.pem -in /etc/letsencrypt/live/seusite.com.br/cert.pem

Nota: uma senha será solicitada para conversão. Guarde essa senha, pois será solicitada quando você for instalar no servidor.

Aqui termina todo o processo de criação do certificado. Repita o processo para o mesmo domínio com www. Conforme dito anteriormente, um certificado se aplica ao domínio sem o www e outro certificado é preciso para o domínio com o www.

Acessando os arquivos no Ubuntu App

Agora vamos descobrir como copiar os arquivos PFX do Ubuntu App para seu Windows e futuramente ser usado para configurar seu servidor web.

Primeiramente, vamos fazer uma copia dos certificados gerados para dentro da pasta do usuário no Ubuntu App, para evitar problemas com permissão de arquivos.

Digite os comandos abaixo no terminal do Ubuntu App:

sudo cp -R /etc/letsencrypt/live/seusite.com.br ~/
sudo cp -R /etc/letsencrypt/live/www.seusite.com.br ~/

Assim as pastas contendo os dois certificados gerados serão copiados para a home do seu usuário no ubuntu app.

Agora dê permissão total aos arquivos que estão no home do usuário com chmod e a flag -R para executar na pasta e em todos os arquivos dentro dela:

sudo chmod -R 777 ~/seusite.com.br
sudo chmod -R 777 ~/www.seusite.com.br

Agora abra o Explorer no Windows e digite na barra de endereços:

\\wsl$

Você vai ver o Ubuntu App como se fosse uma máquina na sua rede local.

Agora é só navegar até a home do usuário e copiar as duas pastas dos certificados gerados para onde você preferir no seu computador.

Seu certificado está pronto para ser utilizado!

Nota: os certificados gratuitos gerados pelo Let’s Encrypt têm prazo de 3 meses. Alguns dias antes você será avisado através do email informado no momento da instalação do Certbot. Após esse período, é preciso que os certificados sejam renovados.

0

Certificações e Segurança / Servidor web azure / certbot / openssl / ubuntu / windows /

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *