Inserindo correção de certificado do certbot

This commit is contained in:
JotaChina committed 2026-10-05 20:24:00 -03:00
1 parent 1949f2f37b
commit 95810ce994
1 file changed
+75
+75
View File
@@ -76,6 +76,81 @@ A infraestrutura é mantida via `systemd` para garantir alta disponibilidade.
--- ---
## 🔐 Manutenção do certificado HTTPS do mmpCreator
O site é atendido pelo Traefik na porta 443, enquanto o backend de colaboração atende diretamente por HTTPS na porta 33001. O backend utiliza os arquivos `/etc/letsencrypt/live/alice.ufsj.edu.br/fullchain.pem` e `privkey.pem` e carrega o certificado ao iniciar. Portanto, renovar o certificado exige reiniciar o backend para carregar a nova versão.
Uma página que abre normalmente, mas não conecta ao servidor em tempo real, pode indicar certificado vencido na porta 33001. O aviso de Ad Blocker exibido pelo frontend é genérico e não confirma a causa.
### 1. Verificar certificado e serviço
Execute no servidor Linux:
```bash
sudo openssl x509 \
-in /etc/letsencrypt/live/alice.ufsj.edu.br/fullchain.pem \
-noout -dates
sudo certbot certificates
sudo systemctl status backend-MMPCreator.service --no-pager
sudo ss -ltnp 'sport = :80'
sudo grep -nE 'authenticator|installer|pre_hook|post_hook' \
/etc/letsencrypt/renewal/alice.ufsj.edu.br.conf
```
`notAfter` informa a data de expiração, em GMT/UTC. Um serviço `active (running)` ainda pode apresentar um certificado expirado.
### 2. Renovar com Certbot standalone e Traefik
Na configuração diagnosticada, o Certbot usa `authenticator = standalone`, e o container `traefik` ocupa a porta 80. Nesse cenário, é necessário parar temporariamente o Traefik para liberar a porta durante a validação. Este procedimento interrompe o acesso aos sites atendidos pelo proxy; execute em uma janela de manutenção. Ele só se aplica enquanto essa configuração permanecer em uso.
O certificado inclui sete domínios. Todos precisam estar acessíveis para a validação HTTP do Certbot. Se o teste falhar, corrija o erro informado antes de tentar a renovação real.
Execute o bloco completo em Bash. O `trap` tenta iniciar novamente o Traefik ao sair do bloco, inclusive se algum comando falhar:
```bash
(
set -e
trap 'sudo docker start traefik' EXIT
sudo docker stop traefik
sudo certbot renew --cert-name alice.ufsj.edu.br --dry-run
sudo certbot renew --cert-name alice.ufsj.edu.br
)
```
O `--dry-run` apenas testa a renovação; o comando seguinte renova efetivamente o certificado. Confira a retomada do proxy e a nova validade:
```bash
sudo docker ps --filter name=traefik
sudo openssl x509 \
-in /etc/letsencrypt/live/alice.ufsj.edu.br/fullchain.pem \
-noout -dates
```
Se o Traefik não estiver em execução, retome-o com `sudo docker start traefik`. Se `notAfter` continuar vencido, consulte a saída do Certbot e `/var/log/letsencrypt/letsencrypt.log`.
### 3. Reiniciar o backend e testar a conexão
Após uma renovação bem-sucedida, confirme que o certificado no disco não está vencido antes de reiniciar. O reinício desconecta temporariamente as salas:
```bash
sudo openssl x509 \
-in /etc/letsencrypt/live/alice.ufsj.edu.br/fullchain.pem \
-noout -checkend 0 && \
sudo systemctl restart backend-MMPCreator.service
sudo systemctl status backend-MMPCreator.service --no-pager
sudo journalctl -u backend-MMPCreator.service -n 80 --no-pager
curl -v --max-time 10 \
'https://alice.ufsj.edu.br:33001/socket.io/?EIO=4&transport=polling'
```
O teste deve responder sem erro TLS, com um handshake Socket.IO iniciado por `0{"sid":...}`. Depois, recarregue o mmpCreator e teste a criação e a entrada em uma sala. Não utilize `curl -k` para validar a correção: essa opção ignora os erros de certificado.
---
## 🛠️ Área de Desenvolvimento (Execução Manual) ## 🛠️ Área de Desenvolvimento (Execução Manual)
1. Ative o ambiente virtual: 1. Ative o ambiente virtual: