bg-tutorials

Как проверить дату истечения срока действия SSL-сертификата с помощью OpenSSL

SSL-сертификаты имеют ограниченный срок действия и должны регулярно обновляться, чтобы браузеры продолжали им доверять. Публичные сертификаты, выпущенные после 15 марта 2026 года, ограничены сроком действия 200 дней, при этом максимальный срок действия сократится до 100 дней с 15 марта 2027 года и до 47 дней с 15 марта 2029 года. Точное знание того, когда истекает сертификат, помогает своевременно его обновить и избежать сбоев в работе.

Это руководство покажет вам, как проверить срок действия сертификата с помощью OpenSSL: для действующего сервера, для локального файла, а также как проверить, скоро ли истекает срок действия сертификата.

Быстрый ответ:

Для действующего веб-сайта выполните команду:

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

Для файла сертификата выполните команду:

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

Значение notAfter — это дата истечения срока действия.

Способ 1: Проверка сертификата на действующем сервере

Этот способ подключается к работающему веб-сайту и считывает предоставляемый им сертификат — файл сертификата вам не нужен. Он работает для любого доступного хоста (удаленного домена или localhost с нужным портом для локального сервера).

В Linux и macOS

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

Замените yourdomain.com на ваш реальный домен. Команды идентичны в macOS, поскольку macOS — Unix-подобная система (встроенная в нее openssl — это LibreSSL, которая поддерживает эти параметры).

В Windows

  • Откройте командную строку или PowerShell (нажмите Win + R, введите cmd или powershell и нажмите Enter).
  • Выполните команду:
echo | openssl s_client -servername yourdomain.com -connect yourdomain.com:443 2>nul | openssl x509 -noout -enddate

В Windows используйте 2>nul вместо 2>/dev/null для отбрасывания сообщений об ошибках.

Способ 2: Проверка сертификата из PEM-файла

PEM-файл — это сертификат в кодировке base64, который начинается с ——BEGIN CERTIFICATE—— и заканчивается ——END CERTIFICATE——. Используйте этот способ, если у вас есть файл сертификата на диске.

В Linux и macOS

Перейдите в папку, где хранится ваш сертификат, затем узнайте дату окончания срока действия (замените your_certificate.pem на имя вашего файла):

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

В Windows

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

Убедитесь, что OpenSSL установлен и добавлен в PATH; в противном случае укажите полный путь к исполняемому файлу openssl.exe.

Просмотр обеих дат или проверка, скоро ли истекает срок действия сертификата

Чтобы увидеть и дату выпуска (notBefore), и дату окончания срока действия (notAfter), используйте -dates вместо -enddate:

openssl x509 -in your_certificate.pem -noout -dates

Чтобы проверить, истечет ли срок действия сертификата в течение заданного периода времени, используйте -checkend с указанием количества секунд (здесь 2592000 секунд = 30 дней):

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

Команда выводит Certificate will not expire (и завершается со статусом 0) или Certificate will expire (статус 1) — что делает ее идеальной для скриптов мониторинга и заданий cron.

Понимание команды и результата вывода

Возьмем в качестве примера команду для действующего сервера и ее результат:

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

Результат вывода:

notAfter=Sep 15 23:59:59 2026 GMT

Вот что делает каждая часть команды:

  • echo | — отправляет пустой ввод, чтобы команда завершилась без ожидания взаимодействия.
  • openssl s_client — открывает SSL/TLS-соединение с сервером.
  • -servername example.com — задает Server Name Indication (SNI), что требуется, когда сервер хостит несколько сертификатов для разных доменов.
  • -connect example.com:443 — хост и порт для подключения (порт 443 — стандартный порт HTTPS).
  • 2>/dev/null (Linux/macOS) или 2>nul (Windows) — отбрасывает сообщения об ошибках, чтобы отображался только относящийся к делу результат.
  • | openssl x509 -noout -enddate — передает сертификат в инструмент x509; -noout подавляет вывод дампа PEM, а -enddate выводит только дату истечения срока действия.
  • notAfter=… — дата и время, когда сертификат перестает быть действительным.

Автоматизируйте это: перестаньте отслеживать даты вручную

Вместо того чтобы проверять даты истечения срока действия вручную, особенно с учетом того, что сроки действия сокращаются до 47 дней, вы можете использовать ACME как Certificate-as-a-Service (CaaS). Он обрабатывает валидацию домена, устанавливает сертификаты и автоматически обновляет их до истечения срока действия, так что ваш сайт остается доверенным без ручного вмешательства.

Сэкономьте 10% на SSL-сертификатах при заказе сегодня!

Быстрая выдача, надежное шифрование, 99,99% доверия к браузеру, специализированная поддержка и 25-дневная гарантия возврата денег. Код купона: SAVE10

Детальное изображение дракона в полете
Написано

Опытный автор контента, специализирующийся на SSL-сертификатах. Превращает сложные темы кибербезопасности в понятный, увлекательный контент. Вносите свой вклад в повышение уровня цифровой безопасности с помощью впечатляющих рассказов.