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 sendo reconhecidos pelos 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 reduzindo 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 você a renová-lo no prazo e evitar interrupções.

Este guia mostra como verificar a expiração de certificados com OpenSSL: em um servidor ativo, em 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 em um servidor ativo

Este método conecta-se a um site em execução e lê o certificado que ele serve; você não precisa do arquivo de 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, pois o macOS é semelhante ao Unix (o openssl integrado é o LibreSSL, que suporta essas 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 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 de certificado no disco.

No Linux e macOS

Navegue até a pasta que contém o seu certificado e 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 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 expirará dentro de um determinado período, use -checkend com um número de segundos (aqui, 2592000 segundos = 30 dias):

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

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

Entendendo o comando e a saída

Tome o comando para servidor ativo e sua saída como exemplo:

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

Saída:

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 aguardar interação.
  • openssl s_client — abre uma conexão SSL/TLS com o servidor.
  • -servername example.com — define a Indicação de Nome de Servidor (SNI), necessária quando um servidor hospeda múltiplos certificados para domínios diferentes.
  • -connect example.com:443 — o host e a porta para conectar (porta 443 é a porta HTTPS padrão).
  • 2>/dev/null (Linux/macOS) ou 2>nul (Windows) — descarta mensagens de erro para que apenas a saída relevante seja exibida.
  • | openssl x509 -noout -enddate — redireciona o certificado para a ferramenta x509; -noout suprime o dump PEM e -enddate exibe apenas a data de expiração.
  • notAfter=… — a data e hora em que o certificado deixa de ser válido.

Automatize: pare de controlar datas manualmente

Em vez de verificar datas de expiração manualmente, especialmente à medida que os períodos de validade se reduzem para 47 dias, você pode usar o ACME como Certificate-as-a-Service (CaaS). Ele cuida da validação de domínio, instala certificados e os renova automaticamente antes que expirem, mantendo seu site confiável sem intervenção manual.

Conclusão

O OpenSSL verifica a expiração de certificados em uma única linha, a partir de um servidor ativo com s_client ou a partir de um arquivo com x509 -enddate, enquanto -dates e -checkend adicionam a data de emissão e uma verificação de expiração iminente. O campo notAfter informa exatamente quando renovar para que você evite interrupções no serviço. Quando estiver pronto para renovar, navegue pelos nossos certificados SSL.

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.