HTTPS para um contentor: um certificado e um domínio

Para uma aplicação a correr num contentor ter o cadeado, precisa de um domínio que aponte para o VPS e de um certificado. O caminho mais comum é o nginx à frente do contentor (veja como montá-lo) e o certbot a pedir um certificado gratuito à Let’s Encrypt e a renová-lo. Num VPS com Ubuntu e Docker não há AutoSSL do cPanel: o certificado e a renovação são seus.

Com o nginx e o certbot

1 Confirme o DNS. O nome (por exemplo app.yourcompany.com) tem de apontar para o IP do VPS, e para nenhum outro: se existir também um registo AAAA (IPv6) a apontar a outro sítio, a validação falha. Veja como verificar o DNS de um domínio.
2 Abra as portas 80 e 443. A validação faz-se pela porta 80, por isso ela tem de estar acessível de fora, mesmo que depois tudo passe a 443. Veja portas e firewall.
3 Instale o certbot com o plugin do nginx. No Ubuntu 22.04: sudo apt install certbot python3-certbot-nginxA página do certbot (certbot.eff.org) tem também o método recomendado por eles para cada sistema; siga o que lá estiver.
4 Peça o certificado: sudo certbot --nginx -d app.yourcompany.comO certbot pede um e-mail, valida o domínio, altera o ficheiro do nginx para usar o certificado e pergunta se quer redireccionar o HTTP para o HTTPS. Aceite o redireccionamento.
5 Teste a renovação. Os certificados curtos são de propósito. A renovação é automática, mas prove-a: sudo certbot renew --dry-runSe acabar sem erros, está tratada. Para ver quando acaba cada certificado: sudo certbot certificates.
6 Diga à aplicação que está por trás de HTTPS. O nginx já envia o cabeçalho X-Forwarded-Proto. A aplicação tem de o respeitar, senão gera endereços http:// e o cadeado perde-se em conteúdo misto.

Outras maneiras de ter HTTPS

Opção Como funciona A ter em conta
nginx + certbot no servidor O certbot corre no VPS e mexe no nginx. A mais comum e a mais documentada. A renovação é um temporizador do sistema.
Caddy Um servidor web que obtém e renova certificados sozinho. Menos configuração, mas é mais um programa para aprender e manter.
Traefik Um proxy que lê os contentores e trata dos certificados. Pensado para muitos contentores. A configuração é sua.
Cloudflare à frente O visitante fala HTTPS com o Cloudflare. Continua a precisar de HTTPS entre o Cloudflare e o VPS: veja SSL no Cloudflare.
Se a validação falhar, não insista em loop. A Let’s Encrypt limita as tentativas falhadas. Resolva a causa (DNS por propagar, porta 80 fechada, outro serviço a usar a 80 ou a 443) e, enquanto ensaia, use --dry-run, que não gasta o seu limite. Um domínio acabado de apontar pode demorar a propagar: quanto demora o DNS a propagar.
Um contentor a ouvir na 80 ou na 443 estraga o nginx. Se o nginx não arranca com «address already in use», outro programa tem essa porta. Veja quem: sudo ss -tlnp. E se o seu site de yourcompany.com está noutro sítio, não mexa nos nameservers do domínio inteiro: crie só o subdomínio, como em domínio connosco, site noutro sítio.

O domínio está connosco e o registo A não parece estar a funcionar? Diga-nos o nome e o IP do VPS, e confirmamos o DNS.

Abrir um pedido de suporte

VEJA TAMBÉM

Nginx como proxy inverso à frente de um contentor

Registos DNS explicados: A, CNAME, MX, TXT e TTL

Quanto tempo demoram as alterações de DNS a propagar

Certificados SSL

PRODUTO RECOMENDADO

Registe o seu domínio .com

Garanta o nome da sua empresa antes que outro o registe. a partir de 15.300,00 Kz/ano

Pesquisar domínio
  • 0 Utilizadores acharam útil
Esta resposta foi útil?