Capítulo 5 · 5.1
Caddy: um site com https automático
O Caddy é um servidor web que pede ele próprio um certificado ao Let's Encrypt e o renova a tempo. Não precisa de configurar o certbot. Por isso, para um servidor novo, o Caddy é a escolha mais simples.
O que deve estar preparado?
- Os registos A e AAAA do seu nome apontam para o seu VPS (consulte Um registo A e AAAA em Os meus domínios).
- As portas 80 e 443 estão abertas na sua firewall (consulte Uma firewall com ufw (ou nftables)). O Let's Encrypt verifica através da porta 80 se o nome é realmente gerido por si.
- Não está a correr nenhum outro servidor web na porta 80 ou 443, como o nginx ou o Apache.
Instalar o Caddy
anna@web1:~$ sudo apt install caddy
anna@web1:~$ systemctl status caddy
O Caddy está disponível no repositório de pacotes do Debian e do Ubuntu e arranca de imediato como serviço. Se pretender ter sempre a versão mais recente, utilize o repositório de pacotes do próprio Caddy, conforme indicado em caddyserver.com/docs/install.
O seu primeiro site
Coloque os seus ficheiros numa pasta, por exemplo /srv/www/example.com, e abra o ficheiro de configuração:
anna@web1:~$ sudo mkdir -p /srv/www/example.com
anna@web1:~$ echo '<h1>Het werkt</h1>' | sudo tee /srv/www/example.com/index.html
anna@web1:~$ sudo nano /etc/caddy/Caddyfile
Substitua o conteúdo por:
example.com, www.example.com {
root * /srv/www/example.com
file_server
encode zstd gzip
}
anna@web1:~$ caddy validate --config /etc/caddy/Caddyfile
anna@web1:~$ sudo systemctl reload caddy
Abra https://example.com. O Caddy obtém o certificado na primeira visita ou poucos segundos após o recarregamento, e redireciona automaticamente http para https.
Não funciona?
anna@web1:~$ journalctl -u caddy --since "10 minutes ago"
As causas mais frequentes: o DNS ainda não aponta para o seu VPS, a porta 80 está fechada ou já está a correr outra coisa na porta 80. Mais informações em Site inacessível, 502 Bad Gateway ou erro de certificado.
Dica: Coloque no topo do Caddyfile um bloco com o seu endereço de e-mail. Assim, o Let's Encrypt pode contactá-lo se houver algum problema com os seus certificados:
{
email beheer@example.com
}