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

