Erro de SSL/TLS — Certificado OpenClaw

Como resolver erros de certificado SSL no OpenClaw. Certificados expirados, inválidos e configuração.

Erro de SSL/TLS

O OpenClaw está dando erro de certificado? Veja como resolver.

Sintomas
Error: CERT_HAS_EXPIRED
Error: UNABLE_TO_VERIFY_LEAF_SIGNATURE
Error: SELF_SIGNED_CERT_IN_CHAIN
Error: SSL certificate problem
Causas e Soluções1. Certificado Expirado

No seu servidor:

# Verificar data de expiração
openssl s_client -connect seu-dominio.com:443 2>/dev/null | openssl x509 -noout -dates

# Renovar com Let's Encrypt
sudo certbot renew

Em serviço externo: O serviço que você está chamando tem certificado expirado. Aguarde ou contate o provedor.

2. Certificado Auto-assinado

Se for seu servidor em desenvolvimento:

# config.yaml
http:
  reject_unauthorized: false  # ⚠ Apenas dev

Melhor solução: Use Let’s Encrypt (gratuito) para certificado válido:

sudo apt install certbot
sudo certbot certonly --standalone -d seu-dominio.com
3. CA Não Reconhecida

Adicionar CA customizada:

# Copiar certificado da CA
sudo cp minha-ca.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates

Via Node.js:

export NODE_EXTRA_CA_CERTS=/path/to/ca.crt
4. Data/Hora do Sistema Errada

Certificados validam data. Se seu sistema estiver errado:

# Verificar data
date

# Sincronizar
sudo ntpdate pool.ntp.org
# ou
sudo timedatectl set-ntp true
5. Proxy/Firewall Interceptando

Se sua empresa usa proxy HTTPS:

# Definir proxy
export HTTPS_PROXY=http://proxy:8080

# Com certificado do proxy
export NODE_EXTRA_CA_CERTS=/path/to/proxy-ca.crt
DiagnósticoVerificar Certificado
# Ver detalhes do certificado
openssl s_client -connect api.anthropic.com:443 -servername api.anthropic.com

# Verificar cadeia completa
openssl s_client -connect api.anthropic.com:443 -showcerts
Testar Conexão
# Com curl (mostra detalhes SSL)
curl -vI https://api.anthropic.com

# Ignorar SSL (apenas teste!)
curl -k https://api.anthropic.com
Configuração SeguraProdução
# config.yaml
http:
  reject_unauthorized: true  # Sempre true em prod
  ca_path: null  # Usa CAs do sistema
Desenvolvimento
# config.yaml - APENAS desenvolvimento local
http:
  reject_unauthorized: false

NUNCA use reject_unauthorized: false em produção!

Por ServiçoAPIs de IA (Anthropic/OpenAI)

Esses serviços usam certificados válidos. Se der erro:

  1. Verifique sua conexão
  2. Verifique data do sistema
  3. Verifique proxy/firewall corporativo
Webhooks Externos

Se você recebe webhooks via HTTPS:

# Certificado válido obrigatório
# Use Let's Encrypt:
sudo certbot certonly --webroot -w /var/www/html -d seu-dominio.com
Serviços Internos

Para serviços internos com certificados self-signed:

# Adicione CA interna ao sistema
sudo cp internal-ca.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates
Ambientes ComunsDocker
# Copiar CA certificates
COPY ca-certificates.crt /etc/ssl/certs/
ENV SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt
Kubernetes
# ConfigMap com CA
apiVersion: v1
kind: ConfigMap
data:
  ca.crt: |
    -----BEGIN CERTIFICATE-----
    ...
Próximos Passos