Skip to content

Código de status HTTP · Não oficial, usado por Cloudflare

Erro 526 Invalid SSL Certificate

O erro 526 significa que a Cloudflare, no modo Full (strict), não conseguiu validar o certificado SSL do seu servidor de origem. A causa mais comum é um certificado vencido na origem, muitas vezes um Let’s Encrypt cuja renovação parou sem ninguém perceber.

Dados sobre este código de status
Classe4xx/5xx, Códigos não oficiais (nginx, Cloudflare)
Definido emCloudflare docs: Error 526
Pode ir para o cache por padrãoSó com Cache-Control ou Expires explícitos; os TTLs padrão da borda da Cloudflare só cobrem 200, 206, 301, 302, 303, 404 e 410, então um 52x não fica em cache por padrão
Pode repetir o pedidoNão; primeiro é preciso corrigir o certificado da origem ou mudar o modo SSL
Cabeçalhos relevantes
  • CF-RAY: liga a página de erro à validação que falhou na origem

O que significa o 526

O Full (strict) faz a Cloudflare conferir o certificado da origem como um navegador faria. A lista da Cloudflare: não vencido, não revogado, assinado por uma autoridade certificadora (ou um certificado Origin CA da Cloudflare), o hostname pedido no Common Name ou no Subject Alternative Name, e cadeia completa, com os intermediários que a origem precisa enviar junto com o certificado final.

O visitante nunca vê o certificado da origem, então um certificado vencido pode passar despercebido até o dia em que a Cloudflare começa a recusá-lo. Monitorar o vencimento na origem, e não só o certificado público da borda, evita a maioria dos 526.

Causas comuns

Se você está visitando o site

  • O servidor do site tem um problema de certificado que a Cloudflare se recusa a aceitar. O cadeado do seu navegador se refere ao certificado da Cloudflare, que está em ordem.

Se você administra o servidor

  • O certificado da origem venceu porque o certbot ou outro job de renovação falhou, muitas vezes depois que o site passou para trás da Cloudflare e a validação HTTP deixou de chegar ao servidor.
  • Um certificado autoassinado, que o Full (strict) rejeita a menos que esteja no Custom Origin Trust Store.
  • O certificado cobre example.com mas não www.example.com, ou cobre um hostname antigo.
  • O servidor envia só o certificado final, sem a cadeia intermediária.

Como resolver

Se você está visitando o site

  • Avise o dono do site; não há nada no seu navegador que contorne o erro.

Se você administra o servidor

  • Inspecione datas, nomes e cadeia do certificado da origem com openssl (abaixo) contra o IP da origem, sem passar pela Cloudflare.
  • Renove ou troque o certificado. Um Origin CA da Cloudflare evita problemas de renovação em origens que só recebem tráfego da Cloudflare.
  • Envie a cadeia completa: no nginx, o ssl_certificate deve apontar para fullchain.pem, não cert.pem.
  • Só como medida temporária, mude a zona de Full (strict) para Full, que não valida o certificado, e volte depois de corrigir.

Como diagnosticar o 526

Quem gera este código é a Cloudflare, na borda, quando não consegue uma resposta utilizável da sua origem; o seu servidor nunca o envia. Os comandos abaixo falam direto com a origem, sem passar pela Cloudflare, para você ver o que ela vê.

Terminal
# Dates, names and issuer of the certificate the origin serves
openssl s_client -connect ORIGIN_IP:443 -servername example.com </dev/null 2>/dev/null \
  | openssl x509 -noout -subject -issuer -dates -ext subjectAltName

# Does the origin send the intermediate chain? Count the certificates
openssl s_client -connect ORIGIN_IP:443 -servername example.com -showcerts </dev/null 2>/dev/null \
  | grep -c 'BEGIN CERTIFICATE'

Costuma ser confundido com

526 vs 525
No 525 o próprio handshake TLS falhou; no 526 ele terminou e o certificado apresentado pela origem não passou na validação.

Perguntas frequentes

Qual a forma mais rápida de resolver o erro 526?
Mudar o modo SSL/TLS de Full (strict) para Full tira o erro na hora, porque o Full não valida o certificado da origem. Use isso só temporariamente e corrija o certificado.
Posso usar certificado autoassinado com Full (strict)?
Só se você enviar o certificado para o Custom Origin Trust Store da Cloudflare. Fora isso, use um certificado Origin CA da Cloudflare ou de uma autoridade certificadora pública.
Por que recebo 526 num Worker da Cloudflare?
Subrequests de Workers para hostnames fora da sua zona e sem proxy da Cloudflare sempre usam Full (strict), independente da configuração da zona, então esse host externo precisa de um certificado válido.
Meu certificado está válido no navegador. Por que a Cloudflare dá 526?
O navegador confere o certificado da borda da Cloudflare, não o da sua origem. Teste a origem direto com openssl s_client no IP dela para ver o certificado que a Cloudflare realmente recebe.

Revisado em por Arielton Oberek.