bg-tutorials

Como Verificar a Data de Expiração do Certificado SSL com OpenSSL

Os certificados SSL têm períodos de validade limitados e devem ser renovados regularmente para continuarem confiáveis nos navegadores. Os certificados públicos emitidos após 15 de março de 2026 estão limitados a 200 dias, com a validade máxima caindo para 100 dias em 15 de março de 2027 e 47 dias em 15 de março de 2029. Saber exatamente quando um certificado expira ajuda a renová-lo a tempo e a evitar interrupções.

Este guia mostra como verificar a expiração de certificados com OpenSSL: para um servidor ativo, para um arquivo local, e como verificar se um certificado está prestes a expirar.

Resposta rápida:

Para um site ativo, execute:

echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -enddate. 

Para um arquivo de certificado, execute:

openssl x509 -in your_certificate.pem -noout -enddate. 

O valor notAfter é a data de expiração.

Método 1: Verificar um certificado num servidor ativo

Este método conecta-se a um site em funcionamento e lê o certificado que ele disponibiliza; não é necessário ter o arquivo do certificado. Funciona para qualquer host acessível (um domínio remoto, ou localhost com a porta correta para um servidor local).

No Linux e macOS

echo | openssl s_client -servername yourdomain.com -connect yourdomain.com:443 2>/dev/null | openssl x509 -noout -enddate

Substitua yourdomain.com pelo seu domínio real. Os comandos são idênticos no macOS, já que o macOS é do tipo Unix (o seu openssl integrado é o LibreSSL, que suporta estas opções).

No Windows

  • Abra o Prompt de Comando ou o PowerShell (pressione Win + R, digite cmd ou powershell, e pressione Enter).
  • Execute:
echo | openssl s_client -servername yourdomain.com -connect yourdomain.com:443 2>nul | openssl x509 -noout -enddate

No Windows, use 2>nul em vez de 2>/dev/null para descartar as mensagens de erro.

Método 2: Verificar um certificado a partir de um arquivo PEM

Um arquivo PEM é um certificado codificado em base64 que começa com —–BEGIN CERTIFICATE—– e termina com —–END CERTIFICATE—–. Use este método quando tiver o arquivo do certificado no disco.

No Linux e macOS

Vá até a pasta que contém o seu certificado e, em seguida, leia a data de expiração (substitua your_certificate.pem pelo nome do seu arquivo):

cd /path/to/your/certificate/directory
openssl x509 -in your_certificate.pem -noout -enddate

No Windows

cd C:pathtoyourcertificatedirectory
openssl x509 -in your_certificate.pem -noout -enddate

Certifique-se de que o OpenSSL está instalado e presente no seu PATH; caso contrário, especifique o caminho completo para o binário openssl.exe.

Ver ambas as datas, ou verificar se um certificado expira em breve

Para ver tanto a data de emissão (notBefore) quanto a data de expiração (notAfter), use -dates em vez de -enddate:

openssl x509 -in your_certificate.pem -noout -dates

Para verificar se um certificado irá expirar dentro de um determinado prazo, use -checkend com um número de segundos (aqui, 2592000 segundos = 30 dias):

openssl x509 -in your_certificate.pem -noout -checkend 2592000

Ele exibe Certificate will not expire (e termina com o status 0) ou Certificate will expire (status 1) — o que o torna ideal para scripts de monitoramento e tarefas cron.

Compreendendo o comando e o resultado

Tome como exemplo o comando para servidor ativo e o seu resultado:

echo | openssl s_client -servername example.com -connect example.com:443 2>/dev/null | openssl x509 -noout -enddate

Resultado:

notAfter=Sep 15 23:59:59 2026 GMT

Veja o que cada parte faz:

  • echo | — envia uma entrada vazia para que o comando termine sem esperar por interação.
  • openssl s_client — abre uma conexão SSL/TLS com o servidor.
  • -servername example.com — define a Indicação de Nome do Servidor (SNI), necessária quando um servidor hospeda vários certificados para domínios diferentes.
  • -connect example.com:443 — o host e a porta a que se conectar (a porta 443 é a porta HTTPS padrão).
  • 2>/dev/null (Linux/macOS) ou 2>nul (Windows) — descarta as mensagens de erro para que apenas o resultado relevante seja exibido.
  • | openssl x509 -noout -enddate — encaminha o certificado para a ferramenta x509; -noout suprime a exibição do PEM e -enddate imprime apenas a data de expiração.
  • notAfter=… — a data e a hora em que o certificado deixa de ser válido.

Automatize o processo: deixe de acompanhar as datas manualmente

Em vez de verificar as datas de expiração manualmente, especialmente à medida que os períodos de validade diminuem para 47 dias, pode utilizar o ACME como Certificate-as-a-Service (CaaS). Ele trata da validação do domínio, instala os certificados e renova-os automaticamente antes de expirarem, para que o seu site permaneça confiável sem necessidade de intervenção manual.

Economize 10% em certificados SSL ao fazer seu pedido hoje!

Emissão rápida, criptografia forte, 99,99% de confiança no navegador, suporte dedicado e garantia de reembolso de 25 dias. Código do cupom: SAVE10

Uma imagem detalhada de um dragão em voo
Escrito por

Redator de conteúdo experiente, especializado em certificados SSL. Transformação de tópicos complexos de segurança cibernética em conteúdo claro e envolvente. Contribua para melhorar a segurança digital por meio de narrativas impactantes.