Files
Emanuel Almeida 6b3a6f2698 feat: refactor 30+ skills to Anthropic progressive disclosure pattern
- All SKILL.md files now <500 lines (avg reduction 69%)
- Detailed content extracted to references/ subdirectories
- Frontmatter standardised: only name + description (Anthropic standard)
- New skills: brand-guidelines, spec-coauthor, report-templates, skill-creator
- Design skills: anti-slop guidelines, premium-proposals reference
- Removed non-standard frontmatter fields (triggers, version, author, category)

Plugins affected: infraestrutura, marketing, dev-tools, crm-ops, gestao,
core-tools, negocio, perfex-dev, wordpress, design-media

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 15:05:03 +00:00

253 lines
6.4 KiB
Markdown

---
name: cwp-ssl
description: Gestão de certificados SSL no CWP com acme.sh nativo — emissão, renovação e troubleshooting baseado na documentação oficial.
disable-model-invocation: true
---
# /cwp-ssl - Gestão SSL CWP (Documentação Oficial)
Gestão de certificados SSL no CWP usando acme.sh nativo. **Zero assumptions, zero hallucinations** - apenas comandos documentados oficialmente.
**REGRA #38 - ZERO INVENCAO:** NUNCA improvisar comandos. Verificar estado actual ANTES de alterar. Pesquisar wiki CWP se necessario. Usar APENAS scripts oficiais.
---
## Servidor Alvo
| Servidor | IP | MCP | User |
|----------|-----|-----|------|
| **CWP Principal** | 176.9.3.158 | ssh-unified | root |
---
## Documentação Base
- [AutoSSL CWP Wiki](https://docs.control-webpanel.com/docs/admin-guide/ssl/autossl)
- [acme.sh Documentation](https://wiki.centos-webpanel.com/)
### Documentação Hub (Consultar SEMPRE)
**Manuais locais** (`Hub/06-Operacoes/Documentacao/Manuais/CWP/`):
- `CWP-Manual-Completo.md` - Admin Guide + Wiki (seccoes SSL & Security, WebServers) - **503KB**
- `CWP-Guia-do-Utilizador.md` - Painel utilizador (seccao AutoSSL) - **72KB**
- `CWP-Ferramentas-Desenvolvimento.md` - API AutoSSL (add/del/list/renew) - **82KB**
**Quick Reference:** `Hub/06-Operacoes/Documentacao/Quick-Reference/QR-CWP.md`
**NotebookLM (pesquisa AI sobre toda a documentacao CWP):**
```
mcp__notebooklm__notebook_query notebook_id:"0ded7bd6-69b3-4c76-b327-452396bf7ea7" query:"ssl certificado autossl renovacao"
```
---
## Paths Oficiais (Documentados)
| Path | Descrição |
|------|-----------|
| `/root/.acme.sh/` | Instalação acme.sh |
| `/root/.acme.sh/cwp_certs/` | Certificados CWP |
| `/root/.acme.sh/acme.sh.log` | Log acme.sh |
| `/var/log/cwp/autossl.log` | Log AutoSSL CWP |
| `/usr/local/apache/autossl_tmp/` | **Webroot para validação SSL** |
| `/etc/pki/tls/certs/` | Certificados Nginx |
| `/etc/pki/tls/private/` | Chaves privadas Nginx |
---
## Scripts Oficiais
| Script | Descrição |
|--------|-----------|
| `/scripts/install_acme` | Instala/reinstala acme.sh |
| `/scripts/autossl_reload` | Reload AutoSSL |
| `/scripts/generate_hostname_ssl` | Gera SSL para hostname |
| `/scripts/hostname_ssl_restart_services` | Restart serviços após SSL hostname |
---
## Comandos Documentados
### Verificar Certificados Instalados
```bash
# Listar todos os certificados CWP
ls /root/.acme.sh/cwp_certs/
```
### Verificar Próxima Renovação
```bash
# Ver data de próxima renovação para um domínio
grep "Le_NextRenewTimeStr" /root/.acme.sh/cwp_certs/www.DOMINIO_ecc/www.DOMINIO.conf
```
### Forçar Renovação Manual
```bash
# COMANDO OFICIAL para forçar renovação
/root/.acme.sh/acme.sh --renew -d DOMINIO --force --home /root/.acme.sh/cwp_certs
```
### Verificar Certificado Activo
```bash
# Verificar validade de certificado em produção
echo | openssl s_client -connect DOMINIO:443 2>/dev/null | openssl x509 -noout -dates
```
### Ver Logs de Renovação
```bash
# Log acme.sh
tail -100 /root/.acme.sh/acme.sh.log | grep DOMINIO
# Log AutoSSL CWP
tail -100 /var/log/cwp/autossl.log
```
---
## Cron de Renovação Automática
**Cron CWP (documentado):** `23 2 * * *` - Renovação diária às 02:23
```bash
# Verificar cron de renovação
crontab -l | grep -i acme
```
---
## Workflows
### 1. Listar Todos os Certificados
```bash
for d in $(ls /root/.acme.sh/cwp_certs/); do
echo "=== $d ==="
grep -E 'Le_NextRenewTimeStr|Le_Alt' /root/.acme.sh/cwp_certs/$d/*.conf 2>/dev/null | head -3
done
```
### 2. Verificar Certificados Expirando (<30 dias)
```bash
for d in $(ls /root/.acme.sh/cwp_certs/); do
domain=$(echo $d | sed 's/_ecc$//')
echo "=== $domain ==="
echo | openssl s_client -connect $domain:443 2>/dev/null | openssl x509 -noout -dates
done 2>&1 | grep -A1 "notAfter"
```
### 3. Forçar Renovação de Domínio Específico
```bash
# Substituir DOMINIO pelo domínio real
/root/.acme.sh/acme.sh --renew -d DOMINIO --force --home /root/.acme.sh/cwp_certs
```
### 4. Reinstalar acme.sh (se corrompido)
```bash
# COMANDO OFICIAL
sh /scripts/install_acme
```
### 5. Gerar SSL para Hostname
```bash
# COMANDO OFICIAL
sh /scripts/generate_hostname_ssl
sh /scripts/hostname_ssl_restart_services
```
---
## Troubleshooting Documentado
### Renovação Falha - Muitos Subdomínios
**Problema:** `Le_Alt` contém muitos subdomínios (mail, ftp, cpanel) - qualquer falha bloqueia tudo.
**Solução documentada:**
```bash
# Editar .conf para ter apenas domínio principal
vi /root/.acme.sh/cwp_certs/www.DOMINIO_ecc/www.DOMINIO.conf
# Reduzir Le_Alt para apenas 'DOMINIO'
```
### Webroot Incorrecto
**Problema:** Validação falha porque ficheiro `.well-known/acme-challenge/` não é encontrado.
**Solução documentada:**
```bash
# O Nginx CWP serve validação de pasta GLOBAL, não do site
# Pasta correcta:
/usr/local/apache/autossl_tmp/
# NUNCA usar (não funciona):
/home/user/domain.pt/.well-known/
```
### Ver Erro Específico
```bash
tail -100 /root/.acme.sh/acme.sh.log | grep -E 'error|Error|ERRO'
```
---
## Anti-Patterns (NUNCA FAZER)
| Anti-Pattern | Risco | Alternativa |
|--------------|-------|-------------|
| **Usar certbot** | Conflito com acme.sh nativo | Usar acme.sh CWP |
| Incluir mail/ftp/cpanel em Le_Alt | Falha em cascata | Apenas domínio principal |
| Criar hooks manuais | Sobrescrito em update | Usar scripts oficiais |
| Editar certificados em /etc/pki/ | Sobrescrito | Editar em cwp_certs |
---
## Validação Pós-Operação
Após qualquer operação SSL, validar:
```bash
# 1. Certificado instalado correctamente
echo | openssl s_client -connect DOMINIO:443 2>/dev/null | openssl x509 -noout -subject -dates
# 2. Sem erros no log
tail -20 /root/.acme.sh/acme.sh.log | grep -i error
# 3. Site acessível via HTTPS
curl -sI https://DOMINIO | head -5
```
---
## Thresholds de Alerta
| Condição | Status | Acção |
|----------|--------|-------|
| Expira >30 dias | OK | Nenhuma |
| Expira 15-30 dias | Warning | Monitorizar |
| Expira <15 dias | **Crítico** | Renovar imediatamente |
| Expirado | **Urgente** | Forçar renovação |
---
## Checklist de Execução
- [ ] Verificar domínio existe em cwp_certs
- [ ] Verificar webroot está acessível
- [ ] Executar comando de renovação se necessário
- [ ] Validar certificado após operação
- [ ] Verificar logs sem erros
---
**Versão:** 1.0.0 | **Autor:** Descomplicar®
**Fonte:** Documentação oficial CWP (docs.control-webpanel.com, wiki.centos-webpanel.com)