Inspetor de certificado TLS
Abrimos uma conexão TLS com o site como um navegador faria e lemos o certificado, mesmo que esteja quebrado. Se houver algo errado, você vai saber qual das falhas de sempre é a sua.
Para que serve um certificado
Quando o seu navegador se conecta a https://example.com, alguma coisa responde. Se essa coisa pertence mesmo a example.com é outra história. Qualquer um posicionado na rede no meio do caminho poderia ter atendido no lugar.
Por isso o servidor precisa mostrar um documento. Um certificado é um pequeno arquivo com uma chave pública, a lista de nomes de host em nome dos quais essa chave pode falar, uma data de início, uma data de fim e a assinatura de uma autoridade certificadora (CA) que verificou quem controla esses nomes. O navegador percorre a sua lista. O nome na barra de endereços tem que estar no certificado. A data de hoje tem que cair entre as duas datas. A assinatura tem que levar a uma autoridade em que o dispositivo já confia. E o servidor tem que provar que tem a chave privada correspondente. Basta falhar um desses pontos para o visitante receber o aviso de página inteira.
A criptografia só começa depois que tudo isso é confirmado. O cadeado quer dizer que o servidor provou quem é, e a criptografia se apoia nessa prova.
O que o inspetor testa
Ele se conecta à porta 443 duas vezes. Na primeira aceita qualquer coisa, para poder ler o certificado seja qual for o estado dele. Na segunda verifica tudo contra uma lista padrão de raízes confiáveis, como faria um cliente rigoroso.
| Teste | Resultado |
|---|---|
| Datas | Vermelho se expirou ou ainda não é válido. Âmbar com menos de 7 dias restantes, uma observação com menos de 21 dias, verde no resto dos casos. |
| Nomes | Vermelho se o nome de host que você digitou não está coberto. Âmbar se o gêmeo dele (com ou sem www) existe no DNS mas falta no certificado. |
| Confiança | Se a verificação falhar, você recebe a causa: expirado, nome errado, autoassinado, cadeia incompleta, ou o erro de verificação bruto. |
| Ordem da cadeia | Âmbar se os certificados enviados não se assinam uns aos outros na sequência. |
| Chave e assinatura | Vermelho para uma chave RSA com menos de 2048 bits ou uma assinatura SHA-1 ou MD5. |
| Protocolo | Vermelho se a conexão for negociada com algo mais antigo que TLS 1.2. |
Depois ele pede as quatro formas do endereço (http e https, com e sem www) e mostra onde cada uma termina e se o site envia um cabeçalho HSTS. Se quiser essa parte etapa por etapa, o rastreador de redirecionamentos faz isso.
Funciona no Chrome, falha em todo o resto
As autoridades não assinam o seu certificado com a chave raiz. Elas assinam com um certificado intermediário, que por sua vez foi assinado pela raiz. Os dispositivos só guardam raízes, então o seu servidor precisa enviar o intermediário junto com o próprio certificado. Os dois juntos formam a cadeia.
Quando um servidor envia só o próprio certificado, o Chrome e o Edge no computador são tolerantes. Muitas vezes baixam o intermediário que falta ou reaproveitam um que viram em outro site. O Firefox com um perfil novo, celulares Android mais antigos, o curl, webhooks de pagamento, servidores de e-mail e a maioria das bibliotecas de programação não fazem esse favor. É assim que se acaba com um site que parece perfeito para o dono e falha para um cliente de API. O inspetor chama isso de Cadeia incompleta, e aponta o problema quando a verificação falha e um único certificado foi enviado.
Como corrigir as falhas de sempre
- Expirado. Certificados automáticos são renovados uns 30 dias antes do fim, então se o seu venceu, a renovação está falhando há semanas. Com o Certbot, rode
certbot renew --dry-rune leia o erro. Normalmente é um registro DNS que mudou, um firewall fechando a porta 80, ou um redirecionamento que engole/.well-known/acme-challenge/. - Nome não coberto. Peça o certificado de novo listando todos os nomes de host:
certbot -d example.com -d www.example.com. Um curinga*.example.comcobre um nível de subdomínios. Ele não cobre o próprioexample.com, o que pega muita gente. - Cadeia incompleta. Aponte o servidor para o arquivo da cadeia completa. No nginx:
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;. No Apache 2.4.8 ou mais recente,SSLCertificateFilerecebe o mesmo arquivo. - Autoassinado. Troque por um certificado de uma autoridade pública. Let’s Encrypt, ZeroSSL e Google Trust Services emitem de graça.
- Protocolo antigo. Ative TLS 1.2 e 1.3. No nginx:
ssl_protocols TLSv1.2 TLSv1.3;
Você pode ver a mesma coisa num terminal com openssl s_client -connect example.com:443 -servername example.com.
O inspetor conversa com um único endereço IP na porta 443 e informa o protocolo negociado, não todas as versões que o servidor aceitaria. Um site distribuído em vários servidores pode apresentar outro certificado em outro endereço. A revogação não é verificada.
Perguntas frequentes
SSL e TLS são a mesma coisa?
TLS é o nome atual do protocolo. O SSL veio antes, e a última versão dele foi aposentada em 2015. As pessoas ainda dizem “certificado SSL” por costume, mas todo certificado em uso hoje funciona com TLS.
Quanto tempo vale um certificado SSL?
Os certificados da Let’s Encrypt duram 90 dias. Para todas as autoridades públicas, o máximo permitido caiu de 398 para 200 dias em março de 2026, e cai para 100 dias em março de 2027 e 47 dias em março de 2029. Nesse ritmo, renovar à mão deixa de ser realista.
Meu certificado é válido. Por que o navegador ainda diz “Não seguro”?
Normalmente é uma de três coisas. A página foi aberta em http:// e nada redireciona para HTTPS, o certificado não cobre exatamente o nome de host da barra de endereços, ou a página carrega scripts ou imagens em HTTP simples. A tabela de redirecionamentos no resultado mostra o primeiro caso.
O que significa ERR_CERT_COMMON_NAME_INVALID?
O nome de host que você visitou não está na lista de nomes do certificado. Acontece muito no www quando só o domínio sem prefixo foi pedido, ou num subdomínio novo que está recebendo um certificado padrão.
Um certificado gratuito é menos seguro que um pago?
Não. A criptografia é idêntica e os navegadores tratam os dois do mesmo jeito. O que você paga é suporte, uma garantia ou os dados da sua organização dentro do certificado, e os navegadores não exibem mais isso com destaque.
Com quanta antecedência um certificado deve ser renovado?
Os clientes automáticos renovam quando resta um terço da validade, uns 30 dias para um certificado de 90 dias. Se você chegou a 7 dias, que é quando esta verificação começa a avisar, a automação provavelmente parou de funcionar.