Certificados digitais Let’s Encrypt

Certificados digitais é um dos mecanismos utilizados para verificarmos a integridade de um website. Ao acessarmos um website o navegador de internet (comummente chamado de browser) verifica se o mesmo possui um certificado, e caso possua o navegador verifica quem emitiu e quem assinou o certificado.

De forma simplificada os certificados digitais funcionam da seguinte maneira, ele primeiro o certificado é emitido por uma entidade (pessoa singular, empresa ou outro tipo de instituição) e depois o mesmo é assinado por um terceiro que da a “garantia” de que este website é de confiança.

A Let’s Encrypt é uma entidade que assina certificados digitais, tal como ela existem várias como a Symantec, Comodo, GoDaddy, etc., a assinatura de um certificado digital é geralmente um serviço pago fornecido por estas empresas, no caso da Let’s Encrypt  o serviço é fornecido de forma gratuita.

Vou agora demonstrar como fazer para instalar o cliente Let’s Encrypt no Debian/Ubuntu e emitir um certificado digital para um website que esta hospedado num servidor com diferente, neste caso a instalação do certificado no website será feita pelo painel cPanel utilizado para administrar o website.

Para instalar o programa no Debian ou Ubuntu devemos instalar o seguintes pacotes.

$ sudo apt-get install certbot

 

Agora que já temos o certbot instalado vamos confirmar se o mesmo funciona usando o seguinte comando.

$ sudo certbot -h

 

Neste caso aparecera a mensagem com os comandos que podemos utilizar para criar ou gerir os certificados.

Agora vamos criar o certificado digital para o domínio fictício “example.org”. Neste caso vamos utilizar um recurso disponível nas novas versões do certbot que é a possibilidade de emitir certificados wildcard, ou seja certificados que funcionam para mais de um serviço dentro do mesmo domínio. Os certificados deste tipo permitem que o mesmo certificado seja utilizado em diferentes websites dentro do mesmo domínio ou em diferentes serviços, por exemplo um certificado emitido para o domínio “*.example.org” pode ser utilizado para os websites “www.example.org”, “blog.example.org”, “empregos.example.org” e etc.

Nota: Esta função só está disponível a partir da versão 0.22 ou superior.

Podemos verificar a verão disponível nos repositórios oficiais com o seguinte comando.

$ apt-cache show certbot

Package: certbot
Source: python-certbot
Version: 0.22.2-2
Installed-Size: 52
Maintainer: Debian Let's Encrypt <letsencrypt-devel@lists.alioth.debian.org>
Architecture: all
Replaces: letsencrypt
Provides: letsencrypt


 

Agora vamos começar com a criação do certificado, para isso vamos usar a opção “certonly”,  também devemos especificar a opção “–manual” porque o website que irá utilizar o certificado não esta na mesma máquina em que o certificado esta a ser emitido. O certificado que será criado será posteriormente instalado em outra máquina com acesso ao cPanel.

$ sudo certbot certonly --manual -d *.example.org --cert-name example.org --server https://acme-v02.api.letsencrypt.org/directory

 

Nota: a opção “–server” deve ser utilizada porque a emissão de certificados wildcard ainda está em fase de testes, mas num futuro próximo ela estará disponível no serviço padrão sem a necessidade de especificar o servidor alternativo.

Na emissão do primeiro certificado serão pedidos dados como e-mail e nome que mais tarde serão utilizados para confirmar a sua identidade.


Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator manual, Installer None
Obtaining a new certificate
Performing the following challenges:
dns-01 challenge for example.org

-------------------------------------------------------------------------------
NOTE: The IP of this machine will be publicly logged as having requested this
certificate. If you're running certbot in manual mode on a machine that is not
your server, please ensure you're okay with that.

Are you OK with your IP being logged?
-------------------------------------------------------------------------------
(Y)es/(N)o: 


A pergunta acima é um aviso relacionado ao facto de registarem as informações do IP publico e as operações feitas relacionadas ao certificado. Neste caso podemos responder com “Y” e continuar a instalação.


-------------------------------------------------------------------------------
Please deploy a DNS TXT record under the name
_acme-challenge.example.org with the following value:

fgvGWYPnwRkXw0orBbrk5xK15ty2BBmpyrblLXluKjI

Before continuing, verify the record is deployed.
-------------------------------------------------------------------------------
Press Enter to Continue


Esta é a parte crucial do processo, a parte da verificação de que o requerente é mesmo o proprietário ou administrador do domínio. Neste caso ele pede para que se crie um registo DNS do tipo “TXT” como nome “_acme-challenge.example.org” e que o conteúdo do mesmo seja a sequencia de letras e números indicados acima. Neste caso iremos agora para o nosso cPanel criar o regrito.

No painel cPanel vamos selecionar a opção “Zone Editor”.

De seguida iremos selecionar a opção “Manage” no domínio que estamos a criar o website. A seguir iremos escolher as opção “Add Record” e vamos preencher com os dados que nos foram indicados no passo anterior.

Agora podemos voltar a tela anterior e pressionar a tecla “Enter” para confirmar a validação do nosso domínio e proceder com a emissão do certificado.

Após a confirmação do domínio e a criação do certificado alguns arquivos serão criados, nestes arquivos contém as informações que compõem o nosso certificado. Estes arquivos por padrão são criados no diretório “/etc/letsencrypt/live/example.org”. Neste caso iremos agora voltar ao cPanel e copiar o conteúdo destes arquivos na área de “Security -> SSL/TLS”, nesta pagina iremos escolher a opção “Manage SSL sites.”, nesta pagina iremos escolher o domínio desejado e clicar na opção e copiar o conteúdo dos arquivos nas respetivas caixas de texto.

/etc/letsencrypt/live/example.com/cert.pem -> Certificate: (CRT)

/etc/letsencrypt/live/example.com/privkey.pem -> Private Key (KEY)

/etc/letsencrypt/live/example.com/chain.pem -> Certificate Authority Bundle: (CABUNDLE)

E por ultimo clicar na opção instalar certificado. Agora o nosso certificado digital está instalado, para confirmar podemos acessar o website e confirmar a presença de um pequeno cadeado verde na barra de endereço.

Também podemos ver que um certificado Let’s Encrypt foi utilizado no website “www.rickinho.com”.

Espero que o artigo tenha sido útil e até a próxima.

Referências:

https://letsencrypt.org/

https://certbot.eff.org/docs/install.html

 

Compartilhe... :)

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

Este site utiliza o Akismet para reduzir spam. Fica a saber como são processados os dados dos comentários.