Como verificar um certificado e sua cadeia

Informe um nome de host público e clique em Inspecionar certificado. O servidor do VoriTools resolve o nome, conecta-se à porta 443 e lê o certificado apresentado pelo endpoint: emissor, sujeito, nomes, período de validade, impressão SHA-256, protocolo negociado, cifra e tempo de handshake.

Depois vêm dois tipos de resultado: as verificações de nome e datas que o navegador também faz, e se os certificados enviados formam um caminho até uma raiz do repositório de CAs deste servidor. Nada é armazenado e o limite é de 30 verificações por minuto.

  1. Digite apenas o nome do host: exemplo.com. Esquema, caminho, endereço IP e nome de um único rótulo, como localhost, são recusados; um nome internacional é convertido para punycode.
  2. Clique em Inspecionar certificado; o servidor conecta-se à porta 443 a partir da internet.
  3. Leia as três métricas: protocolo negociado, dias restantes e tempo de handshake.
  4. Leia o painel do certificado: sujeito e emissor, nome comum, todos os nomes alternativos, o período de validade no seu fuso horário, número de série, impressão SHA-256, cifra e o endereço que respondeu.
  5. Leia os resultados: primeiro nome e datas, depois a cadeia — confiável, cadeia incompleta, autoassinada, raiz não confiável ou rejeitada.

O que o relatório cobre e o que ele não pode afirmar

Correspondência do nome e datas

A verificação do nome segue a regra do navegador: *.exemplo.com cobre exatamente um rótulo a mais (www.exemplo.com), não exemplo.com nem a.b.exemplo.com. Quando o certificado traz nomes alternativos, apenas essa lista é comparada; o nome comum é usado em certificados que não a possuem. Todos os nomes da lista são exibidos, sejam quantos forem.

As datas vêm do certificado. Os dias restantes são contados em dias inteiros e ficam negativos quando o certificado expira; um certificado ainda válido que expira em menos de 30 dias é informado como aviso, não como erro.

O resultado da cadeia

Os certificados do endpoint são verificados contra o repositório de CAs que este servidor usa: é preciso montar um caminho do certificado apresentado até uma raiz confiável. Os casos negativos são distinguidos entre si: o endpoint não enviou o intermediário que liga o certificado a uma raiz (cadeia incompleta), o certificado é o próprio emissor (autoassinado), a cadeia termina em uma raiz que este repositório não possui, ou o caminho foi montado e rejeitado.

Uma cadeia incompleta é informada como aviso, e não como falha, porque os navegadores mantêm intermediários em cache e alguns buscam o certificado que falta no emissor. Esta verificação não faz nenhuma das duas coisas. Ela também não lê o repositório de confiança do navegador ou do sistema operacional do visitante, nem consulta OCSP, CRL ou transparência de certificados; um resultado confiável aqui não é uma promessa sobre o navegador de quem visita a página.

Os números que merecem uma segunda leitura

A partir deste servidor só são alcançados hosts públicos na porta 443, endereços privados e reservados são bloqueados e o nome é resolvido aqui — um endpoint com balanceamento geográfico pode apresentar a este servidor um certificado diferente do que serve em outras redes.

O protocolo exibido é o que este servidor negociou, e sua pilha TLS vai até o TLS 1.2: um site que serve TLS 1.3 aos navegadores atuais pode aparecer aqui como TLS 1.2. Compare com o openssl s_client em uma máquina atual antes de tirar conclusões. O tempo de handshake é uma única medição de um ponto, não uma referência.

O comprimento da cadeia é o número de certificados que o endpoint enviou, incluindo o próprio certificado — sha256.badssl.com envia três: certificado, intermediário e raiz com assinatura cruzada.

Ferramentas recentes: