Ferramentas de Usuário

Ferramentas de Site


pt:buster:intranet:ssl_cert:letsencrypt

3.5.2 Certificados LetsEncrypt

Para estabelecer uma ligação segura e de confiança é necessário gerar certificados que atestem a identidade do servidor. Esses certificados são geralmente emitidos por entidades certificadoras (Certificate Authority) independentes e de confiança reconhecida. Uma dessas autoridades é a organização Let’s Encrypt.

Atenção

A Let’s Encrypt apenas emite certificados para domínios registados e devidamente configurados. Para mais informações consulte Let’s Encrypt.

Instalação

root@server:~# apt install certbot

Geração dos certificados

NOTA:

O certbot usa as portas 80 (http) ou 443 (https) durante o processo de geração ou renovação de certificados. Caso algum servidor web esteja a utilizar estas portas, o serviço deve ser parado previamente.
Os serviços podem ser parados e reiniciados pelo certbot quando necessário se forem utilizadas as opções –pre-hook “service <serviço> stop” e –post-hook “service <serviço> start”.

O certbot é um utilitário que facilita a emissão e renovação dos certificados Let’s Encrypt. Neste exemplo é pedido um certificado para o domínio home.example.com:

root@server:~# certbot certonly --non-interactive --standalone --agree-tos --email [email protected] -d home.example.com
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Cert is due for renewal, auto-renewing...
Renewing an existing certificate
Performing the following challenges:
tls-sni-01 challenge for home.example.com
Waiting for verification...
Cleaning up challenges
Generating key (2048 bits): /etc/letsencrypt/keys/0002_key-certbot.pem
Creating CSR: /etc/letsencrypt/csr/0002_csr-certbot.pem

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at
   /etc/letsencrypt/live/home.example.com/fullchain.pem. Your cert
   will expire on 2017-10-08. To obtain a new or tweaked version of
   this certificate in the future, simply run certbot again. To
   non-interactively renew *all* of your certificates, run "certbot
   renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Caso um servidor web como, por exemplo o nginx, esteja a funcionar, deve ser parado durante o pedido de emissão de certificados e reiniciado no final do processo. Neste caso o comando anterior deverá ser o seguinte:

certbot certonly --non-interactive --standalone --agree-tos --email [email protected] -d home.example.com -pre-hook "service nginx stop" --post-hook "service nginx start"

O processo de criação dos certificados está concluído. No final foram gerados os seguintes ficheiros:

Ficheiro Conteúdo
cert.pem O certificado para o nosso domínio
chain.pem O certificado intermédio (Let's Encrypt)
fullchain.pem O nosso certificado (cert.pem) e o certificado intermédio (chain.pem) da Let’s Encrypt
privkey.pem A chave privada do certificado

Renovação dos certificados

O certificado auto-assinado é válido por 90 dias. No entanto, este pode ser renovado quando estiver prestes a expirar.

Renovação manual

O processo de renovação dos certificados Let’s Encrypt é facilitado pelo certbot, que reutiliza do parâmetros usados na criação do certificado. Os certificados são renovado apenas se estiverem prestes a expirar:

root@server:~# certbot renew
Saving debug log to /var/log/letsencrypt/letsencrypt.log

-------------------------------------------------------------------------------
Processing /etc/letsencrypt/renewal/home.example.com.conf
-------------------------------------------------------------------------------
Cert not yet due for renewal

The following certs are not due for renewal yet:
  /etc/letsencrypt/live/home.example.com/fullchain.pem (skipped)
No renewals were attempted.

Renovação automática

Opcionalmente, pode-se criar uma tarefa agendada para proceder à renovação automática dos certificados quando estes estiverem prestes a expirar. Durante a instalação o certbot configura essa tarefa de forma automática:

# /etc/cron.d/certbot: crontab entries for the certbot package
#
# Upstream recommends attempting renewal twice a day
#
# Eventually, this will be an opportunity to validate certificates
# haven't been revoked, etc.  Renewal will only occur if expiration
# is within 30 days.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

0 */12 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(3600))' && certbot -q renew

Referências

pt/buster/intranet/ssl_cert/letsencrypt.txt · Última modificação em: 2024-02-15 01:05 por 127.0.0.1