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-сертификатах. Превращает сложные темы кибербезопасности в понятный, увлекательный контент. Вносите свой вклад в повышение уровня цифровой безопасности с помощью впечатляющих рассказов.

Avatar of Sergiu Rosca
Technical Review by Sergiu Rosca

Sergiu Rosca is the core web developer behind SSL Dragon. He manages the technical infrastructure, platform performance, and backend integrations that keep the site running smoothly and securely. At SSL Dragon, Sergiu shares practical insights on web development, site optimization, and technical troubleshooting.

All SSL Dragon installation guides are tested on live server environments and undergo a strict peer-review process to ensure your infrastructure remains secure. Read our full Editorial Policy.