Erro SSL/TLS — Certificado OpenClaw

Como resolver erros de certificado SSL e conexões TLS. Validação, expiração e configuração HTTPS.

Erro SSL/TLS

Descrição do Problema

Erros relacionados a certificados SSL ou conexões TLS:

SSL_ERROR_HANDSHAKE_FAILURE_ALERT
certificate verify failed
unable to get local issuer certificate
CERT_HAS_EXPIRED
self signed certificate in certificate chain
Possíveis Causas
  1. Certificado expirado - Validade do certificado passou
  2. Self-signed - Certificado não é de uma CA confiável
  3. Cadeia incompleta - Faltando certificados intermediários
  4. Hostname errado - Certificado não bate com o domínio
  5. CA desatualizada - Lista de CAs do sistema está antiga
Soluções1. Verificar Certificado
# Ver detalhes do certificado
echo | openssl s_client -servername seu-site.com \
  -connect seu-site.com:443 2>/dev/null | \
  openssl x509 -noout -text

# Ver datas de validade
echo | openssl s_client -servername seu-site.com \
  -connect seu-site.com:443 2>/dev/null | \
  openssl x509 -noout -dates
2. Renovar Certificado Let’s Encrypt
# Renovar com certbot
sudo certbot renew

# Ou renovar específico
sudo certbot renew --cert-name seu-site.com

# Reiniciar servidor web
sudo systemctl restart nginx
3. Atualizar CA Certificates
# Ubuntu/Debian
sudo apt update
sudo apt install ca-certificates
sudo update-ca-certificates

# CentOS/RHEL
sudo yum update ca-certificates
4. Configurar Certificado no Node.js
// Ignorar verificação SSL (NÃO RECOMENDADO EM PRODUÇÃO)
process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';

// Melhor: especificar CA
const https = require('https');
const fs = require('fs');

const options = {
  ca: fs.readFileSync('/path/to/ca-cert.pem')
};
5. Configurar Certificado Completo
# Concatenar certificados (fullchain)
cat seu-certificado.crt intermediario.crt > fullchain.crt

# Verificar cadeia
openssl verify -CAfile ca.crt fullchain.crt
6. Gerar Novo Certificado com Let’s Encrypt
# Instalar certbot
sudo apt install certbot

# Gerar certificado
sudo certbot certonly --standalone -d seu-site.com

# Os arquivos estarão em:
# /etc/letsencrypt/live/seu-site.com/fullchain.pem
# /etc/letsencrypt/live/seu-site.com/privkey.pem
7. Configurar no Gateway
# config.yaml
ssl:
  enabled: true
  cert: /etc/letsencrypt/live/seu-site.com/fullchain.pem
  key: /etc/letsencrypt/live/seu-site.com/privkey.pem
  ca: /etc/letsencrypt/live/seu-site.com/chain.pem
Verificar Problemas
# Testar conexão SSL completa
openssl s_client -connect seu-site.com:443 -servername seu-site.com

# Verificar com curl
curl -v https://seu-site.com

# Testar certificado específico
openssl verify certificado.crt
Problemas RelacionadosPrevenção
  • Configure renovação automática de certificados
  • Monitore datas de expiração
  • Use certificados de CAs confiáveis
  • Mantenha o sistema atualizado