Inserindo correção de certificado do certbot
This commit is contained in:
1 parent
1949f2f37b
commit
95810ce994
1 file changed
+75
@@ -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:
|
||||||
|
|||||||
Reference in new issue
Block a user