Como verificar a validade do certificado SSL (4 jeitos)

Por • 29 Outubro, 2026 • Ferramentas para desenvolvedores • 11 minutos de leitura

Veja quando um certificado SSL expira: online, no navegador ou com openssl e curl. Exemplos reais e o que uma data válida não garante.

Para ver a validade de um certificado SSL, digite o domínio (só exemplo.com.br, sem https://) na nossa consulta SSL grátis e olhe a linha Expira em. No terminal, openssl s_client encadeado com openssl x509 -noout -enddate mostra a mesma data como notAfter. A ferramenta é gratuita, não exige cadastro e funciona direto no navegador, sem instalar nada.

A seguir estão quatro jeitos de descobrir a data, com resultados reais de testes que fizemos em 29 de outubro de 2026. A segunda parte mostra o que a data de expiração não revela, porque um certificado pode estar dentro da validade e mesmo assim fazer o navegador exibir um alerta.

Quatro jeitos de verificar a validade de um certificado SSL

  • Consulta SSL online: o mais rápido, funciona no celular e mostra o certificado que o resto da internet recebe.
  • Navegador: bom para uma olhada rápida no site que está aberto.
  • openssl: o padrão em Linux, macOS e servidores, e dá para automatizar.
  • curl: prático quando você já está depurando requisições HTTP.

Método 1: verificar a validade online

  1. Abra a consulta SSL.
  2. Digite só o nome do host: exemplo.com.br ou loja.exemplo.com.br. Se colar uma URL completa, a ferramenta aproveita só o host.
  3. Deixe a porta em 443 para sites. Mude só para outros serviços com TLS (veja abaixo).
  4. Clique em Enviar e leia Expira em. Os horários estão em UTC.
  5. Calcule quantos dias faltam e marque na agenda uma conferência da renovação com folga.

Exemplo real: mybotsy.com

Passamos o nosso próprio domínio pela consulta SSL. O resultado foi este (datas em UTC):

LinhaResultado
StatusMarca verde
Emitido em2026-09-23 07:23:13
Expira em2026-12-22 08:21:51
OrganizaçãoGoogle Trust Services
Nome comumWE1
PaísEstados Unidos
Tipo de assinaturaecdsa-with-SHA256

Como ler:

  • Expira em é a data notAfter do certificado. Em 29 de outubro, faltavam 53 dias.
  • De Emitido em até Expira em são exatamente 90 dias, a vida útil típica de certificados automáticos.
  • Organização, Nome comum e País descrevem o emissor, não o seu site. WE1 é uma das CAs intermediárias da Google Trust Services. Não espere ver o seu domínio em Nome comum. Para saber quais nomes o certificado cobre, use o navegador ou o openssl (mais abaixo).
  • O status fica verde quando a data de hoje está entre as duas datas. Ele confere só as datas (falamos disso mais adiante).

Por que aparece a Google Trust Services? O mybotsy.com fica atrás da Cloudflare, então os visitantes recebem o certificado de borda da Cloudflare, que o obtém de CAs públicas como a Google Trust Services. Se o seu site usa CDN, qualquer consulta pública mostra o certificado da CDN. O certificado do servidor de origem tem outra data de expiração e precisa ser verificado à parte.

Servidores de e-mail e outras portas

O campo de porta serve para serviços que falam TLS desde o primeiro byte. Testamos smtp.gmail.com na porta 465 (SMTP sobre TLS): emitido em 7 de outubro de 2026, expira em 30 de dezembro de 2026, emissor Google Trust Services WE2. Outras portas com TLS direto são a 993 (IMAP) e a 995 (POP3). Portas que começam em texto puro e passam a usar criptografia com STARTTLS, como a 587 e a 143, precisam de openssl s_client -starttls smtp (ou imap), porque a consulta espera TLS logo de cara.

Método 2: ver no navegador

Todo navegador mostra o certificado da página aberta. Os nomes dos menus mudam um pouco entre versões, mas o caminho é mais ou menos este:

  • Chrome e Edge: clique no ícone à esquerda do endereço, depois em A conexão é segura e em O certificado é válido. A data de expiração fica no período de validade.
  • Firefox: cadeado, Conexão segura, Mais informações, Ver certificado. A data final aparece na seção de validade (no visualizador em inglês, Not After).
  • Safari: cadeado, Mostrar certificado e a data de expiração nos detalhes.

O navegador também lista os nomes alternativos do requerente (SAN), os hosts exatos que o certificado cobre. O problema: você só vê o certificado que o seu navegador recebeu. Com CDN, balanceador de carga ou um certificado antigo em um de vários servidores, outros visitantes podem receber outro.

Método 3: verificar com openssl

No Linux, macOS ou Windows (WSL ou Git Bash), este comando conecta ao servidor e mostra as duas datas:

echo | openssl s_client -connect mybotsy.com:443 -servername mybotsy.com 2>/dev/null \
  | openssl x509 -noout -subject -issuer -dates

O nosso resultado:

subject=CN=mybotsy.com
issuer=C=US, O=Google Trust Services, CN=WE1
notBefore=Sep 23 07:23:13 2026 GMT
notAfter=Dec 22 08:21:51 2026 GMT

Bate com a consulta online até o segundo. Dois detalhes importam:

  • Sempre use -servername. Ele envia o SNI, que diz a um servidor com vários sites qual certificado você quer. Sem isso, uma hospedagem compartilhada pode devolver o certificado de outro site, e você lê a data errada.
  • echo | fecha a conexão na hora, para o comando não ficar esperando entrada.

Acrescente -ext subjectAltName ao segundo comando para listar os nomes cobertos. Para o mybotsy.com, saiu DNS:mybotsy.com, DNS:*.mybotsy.com.

Avise se vencer logo: -checkend

-checkend recebe um número de segundos e sai com código 1 se o certificado expirar dentro desse prazo. É perfeito para cron e CI:

... | openssl x509 -noout -checkend 2592000   # 30 dias
Certificate will not expire                 (código de saída 0)

... | openssl x509 -noout -checkend 7776000   # 90 dias
Certificate will expire                     (código de saída 1)

As duas linhas são do mesmo certificado do mybotsy.com, com 53 dias restantes. Ele está seguro nos próximos 30 dias, mas não nos próximos 90.

Verificar uma lista de domínios com os dias restantes

Coloque um host por linha em hosts.txt e rode:

while read -r host; do
  end=$(echo | openssl s_client -connect "$host:443" -servername "$host" 2>/dev/null \
    | openssl x509 -noout -enddate 2>/dev/null | cut -d= -f2)
  if [ -z "$end" ]; then echo "$host  no certificate"; continue; fi
  days=$(( ( $(date -d "$end" +%s) - $(date +%s) ) / 86400 ))
  echo "$host  $end  $days days left"
done < hosts.txt

O que obtivemos:

mybotsy.com  Dec 22 08:21:51 2026 GMT  53 days left
expired.badssl.com  Apr 12 23:59:59 2015 GMT  -4217 days left
wrong.host.badssl.com  Dec 28 20:02:55 2026 GMT  60 days left

date -d é sintaxe GNU. No macOS, instale o coreutils e use gdate -d. Também dá para ler um arquivo do disco: openssl x509 -in cert.pem -noout -enddate.

Com curl

curl -svI https://mybotsy.com 2>&1 | grep -i "expire date" mostrou expire date: Dec 22 08:21:51 2026 GMT. O curl também recusa certificados inválidos: com expired.badssl.com e com wrong.host.badssl.com ele saiu com o código 60 (problema de certificado), fácil de testar num script.

O que a data de expiração não garante

Usamos os hosts de teste do badssl.com, quebrados de propósito, para mostrar o que uma checagem de datas pega e o que deixa passar.

Certificado expirado: detectado

expired.badssl.com na consulta SSL apareceu com status vermelho, emitido em 9 de abril de 2015 e expirado em 12 de abril de 2015. O openssl confirmou: Verify return code: 10 (certificate has expired).

Nome de host errado: as datas não detectam

wrong.host.badssl.com apareceu com status verde, expirando em 28 de dezembro de 2026, mas os navegadores o rejeitam. Com -verify_hostname wrong.host.badssl.com, o openssl retornou Verify return code: 62 (hostname mismatch). O certificado cobre *.badssl.com e badssl.com, e um curinga vale para exatamente um nível. Ele cobre www.badssl.com, mas não wrong.host.badssl.com, que tem dois níveis antes do domínio.

Cadeia quebrada: as datas também não detectam

No openssl, self-signed.badssl.com retornou o código 18 (certificado autoassinado), untrusted-root.badssl.com o 19 e incomplete-chain.badssl.com o 21 (não foi possível verificar o primeiro certificado). O 21 é o erro clássico de esquecer o certificado intermediário. Alguns navegadores de desktop contornam o problema sozinhos, mas muitos apps, clientes de API e celulares antigos falham.

Resumindo: a data de expiração serve para planejar renovações. Para confirmar que o certificado é válido de fato, veja se ele cobre o nome e se o openssl com -verify_hostname mostra Verify return code: 0 (ok), ou se o curl termina sem erro.

Os certificados estão durando cada vez menos

O Ballot SC-081v3 do CA/Browser Forum limita a 200 dias os certificados TLS públicos emitidos a partir de 15 de março de 2026. O teto cai para 100 dias em 15 de março de 2027 e para 47 dias em 15 de março de 2029. A maioria dos que verificamos já está bem abaixo disso: 90 dias no mybotsy.com e no certificado Let's Encrypt do badssl.com, e 84 dias no SMTP do Gmail. Renovar à mão uma vez por ano deixou de ser viável, então o padrão é a renovação automática (clientes ACME como o Certbot, ou o SSL automático da sua hospedagem ou CDN), e conferir a data serve para confirmar que essa automação continua funcionando.

Validade acabando? Checklist rápido

  • Renovou e a data antiga continua aparecendo? O servidor web pode estar servindo o certificado anterior. Nginx e Apache carregam certificados ao iniciar ou recarregar, então recarregue o serviço depois de renovar e confira todos os servidores atrás do balanceador.
  • Usa CDN? Verifique separadamente o certificado de borda (qualquer consulta pública) e o de origem.
  • A renovação automática falha? Um registro CAA que não inclui a sua CA bloqueia a emissão. Confira na consulta DNS e no nosso guia para verificar registros DNS.
  • Não confunda com o vencimento do domínio. O registro do domínio tem a própria data, que aparece no Whois. Se o domínio expirar, nenhum certificado válido resolve.
  • Depois de corrigir, confirme que http:// redireciona para https:// com o verificador de redirecionamentos e procure o cabeçalho strict-transport-security na consulta de cabeçalhos HTTP.

Confira o seu agora: abra a consulta SSL, digite o seu domínio e anote a data em Expira em. É grátis e não exige cadastro, assim como o verificador de HTTP/2 e as outras ferramentas para sites.

Perguntas frequentes

Como sei quando o meu certificado SSL expira?

Digite o seu domínio na consulta SSL grátis do My Botsy e veja a linha Expira em, no horário UTC. No terminal, rode openssl s_client com -servername e passe a saída para openssl x509 -noout -enddate para ver a data notAfter.

O que acontece quando um certificado SSL expira?

Os navegadores mostram um alerta de página inteira, como o Sua conexão não é particular do Chrome, e a maioria dos visitantes vai embora. Apps, clientes de API e ferramentas como o curl nem chegam a conectar. Nada se resolve até instalar um certificado novo e recarregar o servidor.

Quanto tempo dura um certificado SSL?

Certificados públicos emitidos desde 15 de março de 2026 duram no máximo 200 dias. O teto cai para 100 dias em março de 2027 e para 47 dias em março de 2029. Muitos, como os da Let's Encrypt e da Google Trust Services, já duram cerca de 90 dias.

Por que o site mostra a data antiga depois da renovação?

Quase sempre o servidor web não foi recarregado, um servidor atrás do balanceador ainda tem o arquivo antigo ou você está vendo o certificado da CDN e não o da origem. Recarregue o servidor e verifique de novo com -servername.

Se a data está válida, o meu SSL está funcionando?

Não necessariamente. Um certificado dentro da validade pode falhar se não cobrir o nome do host ou se a cadeia estiver incompleta. Verifique com openssl -verify_hostname ou com o curl e procure o código de verificação 0.

A consulta SSL é grátis?

Sim. É gratuita e não exige conta. Sem cadastro você tem várias consultas grátis por dia, e uma conta gratuita do My Botsy remove o limite diário.

Como corrigir JSON inválido: 10 erros comuns

28 Outubro, 2026

Corrija JSON inválido rápido: entenda erros Unexpected token e corrija vírgulas finais, aspas, comentários e colchetes faltando, passo a pas..

Como consultar registros DNS: A, MX, TXT e CNAME

28 Outubro, 2026

Consulte registros DNS online ou com dig e nslookup. Saiba o que fazem os registros A, AAAA, CNAME, MX, TXT, NS e CAA e resolva problemas co..