Olá, esse tutorial é uma parte do tópico principal: "Tutorial completo de infraestrutura para montar um servidor TFS 1.x no Ubuntu 22.04" ...
Ele tem o objetivo de ensinar como tornar o seu website mais seguro obtendo um certificado SSL gratuito, habilitando HTTPS criptografados em servidores web. Você usará o Certbot para obter um certificado SSL gratuito para o Nginx no Ubuntu 22.04 e configurar seu certificado para ser renovado automaticamente.
PASSO 1 - INSTALANDO O CERTBOT:
Vamos usar o Let’s Encrypt para obter um certificado SSL, portanto vamos instalar o software Certbot e seu plug-in do Nginx para realizar essa tarefa. Use o comando a seguir no terminal linux:
sudo apt install certbot python3-certbot-nginx
PASSO 2 - CONFIGURANDO O NGINX:
O Certbot pode configurar automaticamente o SSL para o Nginx, porem ele precisa encontrar o bloco de server correto na sua configuração. Ele faz isso procurando uma diretiva server_name que corresponda ao domínio para o qual você está solicitando um certificado. Se você está começando com uma nova instalação do Nginx, você pode atualizar o arquivo de configuração padrão. Abra-o com o seu editor de texto favorito em /etc/nginx/sites-available/default e encontre a linha server_name existente e substitua o sublinhado _ pelo seu nome de domínio, como no exemplo: "server_name exemplo.com", você pode também colocar mais de um domínio ou subdomínios: "server_name exemplo.com www.exemplo.com". Salve o arquivo e saia do seu editor.
Recarregue o Nginx para carregar a nova configuração usando o comando a seguir no terminal linux:
sudo systemctl reload nginx
O Certbot agora consegue encontrar o bloco de server correto e atualizá-lo automaticamente.
PASSO 3 - OBTENÇÃO DE UM CERTIFICADO SSL:
ATENÇÃO: Antes de começar esse passo, você precisa apontar o DNS do domínio/subdomínio para o IP da máquina onde está ocorrendo a instalação do certificado.
O Certbot fornece uma variedade de maneiras de obter certificados SSL, através de vários plug-ins. O plug-in Nginx irá cuidar de reconfigurar o Nginx e recarregar a configuração sempre que necessário. Use o comando a seguir no terminal linux:
sudo certbot --nginx -d exemplo.com
Onde está exemplo no comando acima mude para o seu domínio.
Se quiser pode adicionar mais domínios e/ou subdomínios:
sudo certbot --nginx -d exemplo.com -d www.exemplo.com
Se esta for sua primeira vez executando o Certbot , você será solicitado a digitar um endereço de e-mail e concordar com os termos de serviço.
Depois disso, o Certbot se comunicará com o servidor Let's Encrypt e executará um desafio para verificar se você controla o domínio para o qual está solicitando um certificado. Se isso for bem-sucedido, o Certbot perguntará como você gostaria de definir suas configurações de HTTPS.
Saída
Por favor, escolha se deseja ou não redirecionar o tráfego HTTP para HTTPS, removendo o acesso HTTP.
-------------------------------------------------- -----------------------------
1: Nenhum redirecionamento - Não faça mais alterações na configuração do servidor da web.
2: Redirecionar - Redirecionar todas as solicitações para o acesso HTTPS seguro. Escolha isto para
novos sites ou se tiver certeza de que seu site funciona em HTTPS. Você pode desfazer isso
mudar editando a configuração do seu servidor web.
-------------------------------------------------- -----------------------------
Selecione o número apropriado [1-2] e depois [enter] (pressione 'c' para cancelar):
Selecione sua escolha e pressione ENTER . A configuração será atualizada e o Nginx será recarregado para pegar as novas configurações. O Certbot irá finalizar com uma mensagem informando que o processo foi bem sucedido e onde seus
certificados estão armazenados:
Saída
ANOTAÇÕES IMPORTANTES:
Parabéns! Seu certificado e cadeia foram salvos em
/etc/letsencrypt/live/example.com/fullchain.pem. Seu certificado
expiram em 2017-10-23. Para obter uma versão nova ou ajustada deste
certificado no futuro, simplesmente execute certbot novamente com o
opção "certonly". Renovar de forma não interativa * todos * os seus
certificados, execute "certbot renew"
- As credenciais da sua conta foram salvas no seu Certbot
diretório de configuração em / etc / letsencrypt. Você deveria fazer um
backup seguro desta pasta agora. Este diretório de configuração
também contém certificados e chaves privadas obtidos pela Certbot assim
fazer backups regulares desta pasta é ideal.
- Se você gosta do Certbot, considere apoiar nosso trabalho:
Doando para ISRG / Let's Encrypt: https://letsencrypt.org/donate
Doando para a EFF: https://eff.org/donate-le
Seus certificados são baixados, instalados e carregados automaticamente. Tente recarregar seu site usando https:// e observe o indicador de segurança do seu navegador. Ele deve indicar que o site está protegido corretamente, geralmente com um ícone de cadeado verde. Vamos terminar testando o processo de renovação.
PASSO 4 - RENOVAÇÃO AUTOMÁTICA DO CERTIFICADO SSL:
Os certificados da Let’s Encrypt possuem validade de apenas 90 dias. Isso visa incentivar os usuários a automatizar o processo de renovação de certificados. O pacote Certbot que instalamos cuida disso, adicionando um temporizador systemd que será executado duas vezes por dia e renovará automaticamente qualquer certificado que esteja dentro de 30 dias da expiração.
Você pode consultar o status do temporizador com o systemctl usando o seguinte comando no terminal linux:
sudo systemctl status certbot.timer
Ele deve retornar a mensagem:
Resultado:
● certbot.timer - execute o certbot duas vezes por dia
Carregado: carregado (/lib/systemd/system/certbot.timer; ativado; predefinição de fornecedor: ativado)
Ativo: ativo (em espera) desde Seg 2020-05-04 20:04:36 UTC; 2 semanas 1 dias atrás
Disparador: Qui 2020-05-21 05:22:32 UTC; 9h restantes
Gatilhos: ● certbot.service
Para testar o processo de renovação, você pode realizar uma simulação com o Certbot usando o seguinte comando no terminal linux:
sudo certbot renew --dry-run
Se não aparecerem erros, tudo funcionou. Quando necessário, o Certbot renovará seus certificados e recarregará o Nginx para aplicar as alterações. Se o processo de renovação automatizada alguma vez falhar, a Let’s Encrypt enviará uma mensagem para o e-mail que você especificou, informando quando o certificado vai expirar.
PASSO 5 - PERMITINDO O TRÁFEGO HTTPS PELO FIREWALL:
Para permitir adicionalmente o tráfego HTTPS, podemos permitir o perfil Completo Nginx e, em seguida, excluir a tolerância do perfil HTTP Nginx redundante, use os seguintes comandos no terminal linux:
sudo ufw allow 'Nginx Full'
sudo ufw delete allow 'Nginx HTTP'
Para verificar as regras ativas no firewall UFW use o seguinte comando no terminal linux:
sudo ufw status
A mensagem de retorno deve ter algo parecido com isso:
Output
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Nginx Full ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx Full (v6) ALLOW Anywhere (v6)
Agora estamos prontos para executar o Certbot e buscar nossos certificados.
A princípio é isso!
Siga as atualizações no tópico principal: "Tutorial completo de infraestrutura para montar um servidor TFS 1.x no Ubuntu 22.04" ...
Fontes:
- https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-20-04