Как проверить даты всех сертификатов в цепочке подписи: пошаговый разбор

Электронная подпись считается действительной только тогда, когда действительны все сертификаты её цепочки — от личного сертификата подписанта до корневого удостоверяющего центра. Если хотя бы один промежуточный или корневой сертификат просрочен на момент подписания, проверка подписи завершится ошибкой, даже если сам файл не менялся ни на один байт. В этой статье разберём, как увидеть всю цепочку, где смотреть даты начала и окончания действия каждого сертификата и что делать, если обнаружен просроченный элемент.

Почему важны даты именно всей цепочки

Цепочка доверия строится так: ваш личный сертификат выпущен промежуточным центром сертификации, а тот, в свою очередь, — корневым. Программа проверки поднимается по этой лестнице и для каждого звена сверяет текущее время (или время подписания) с периодом действия сертификата. Период задаётся двумя полями: «действителен с» (notBefore) и «действителен до» (notAfter).

Типичная ошибка — проверять только личный сертификат подписанта. На практике чаще всего «внезапно» ломается именно промежуточное звено: корневые сертификаты живут по 10–30 лет, а промежуточные нередко перевыпускаются каждые несколько лет. Если организация, выдавшая вам сертификат, сменила промежуточный центр, а старый истёк, все подписи, сделанные под старой цепочкой, начнут вызывать вопросы у контрагентов.

Второй нюанс — время проверки. Подпись может быть создана давно, а проверяется сейчас. Системы различают два подхода:

  • Проверка на текущий момент. Все сертификаты цепочки должны быть действительны прямо сейчас. Так работают большинство стандартных инструментов при обычной проверке файла.
  • Проверка на момент подписания. Достаточно, чтобы цепочка была действительна в секунду создания подписи. Это обеспечивает метка времени (timestamp): служба доверенного времени подтверждает, что подпись существовала до истечения сертификата. Без метки времени подпись, сделанная в последний день действия сертификата, через месяц станет непроверяемой.

Поэтому перед проверкой полезно понять, есть ли в подписи метка времени: от этого зависит, какие даты вообще имеют значение.

Где посмотреть цепочку и даты: основные инструменты

Windows: оснастка управления сертификатами

  1. Нажмите Win+R, введите certmgr.msc — откроется хранилище сертификатов текущего пользователя.
  2. Раскройте ветку «Личные» → «Сертификаты» и найдите нужный сертификат.
  3. Откройте его двойным щелчком, перейдите на вкладку «Путь сертификации».
  4. Кликните по каждому уровню дерева и нажмите «Просмотр сертификата»: на вкладке «Общие» будут указаны сроки действия каждого звена.

Если значок сертификата в пути помечен предупреждением или красным крестом, наведите курсор — система покажет причину, например «истёк срок действия». Этот же путь доступен из свойств подписанного документа: в проводнике откройте свойства файла, вкладку «Цифровые подписи», кнопку «Состав» — там видна вся цепочка со статусами.

OpenSSL: универсальный способ для любых платформ

Для файла сертификата:

  • openssl x509 -in cert.crt -noout -dates — покажет notBefore и notAfter;
  • openssl x509 -in cert.crt -noout -subject -issuer -dates — добавит субъект и издателя, чтобы сопоставить уровни цепочки между собой.

Для сайта или службы, использующей TLS:

  • openssl s_client -connect example.com:443 -showcerts — выведет все сертификаты, которые сервер отдаёт в цепочке; каждый блок затем можно сохранить в файл и проверить даты командой выше.

Чтобы собрать полную цепочку локально, а не ту сокращённую версию, которую прислал сервер, удобно использовать команду openssl verify -show_chain -untrusted intermediate.crt cert.crt: она покажет весь построенный путь вместе с корнем.

Браузеры и онлайн-сервисы

В браузере достаточно открыть сайт по HTTPS и кликнуть по замку рядом с адресом, затем перейти к сведениям о сертификате: там отображается дерево цепочки и срок действия каждого элемента. Для документов с электронной подписью (PDF, XML-подписи) удобны встроенные средства Adobe Acrobat, LibreOffice и специализированные криптопровайдеры — они показывают состав подписи, включая метку времени и статус каждого сертификата.

Квалифицированные подписи по российским правилам

Если речь о квалифицированной электронной подписи (КЭП), к обычной проверке дат добавляются требования законодательства: сертификат должен быть выдан аккредитованным удостоверяющим центром, а проверка обычно выполняется через специализированные средства — КриптоПро CSP, плагины для браузера, сервисы проверки на порталах госуслуг. Логика та же: смотреть нужно весь путь сертификации, а не только личный сертификат. Актуальный список аккредитованных УЦ и порядок проверки стоит уточнять на официальном портале ведомства, ведущего реестр, поскольку аккредитации периодически меняются.

Что именно сверять: контрольный список

  • Период действия каждого звена. Текущая дата должна попадать в интервал notBefore–notAfter для личного, промежуточного и корневого сертификатов.
  • Совпадение издателя и субъекта соседних уровней. Поле issuer сертификата должно совпадать с полем subject сертификата верхнего уровня — иначе цепочка разорвана.
  • Наличие и срок метки времени. Если подпись долгосрочная, убедитесь, что timestamp присутствует и сама метка тоже имеет действительную цепочку сертификатов службы времени.
  • Статус отзыва. Даты — необходимое, но недостаточное условие: сертификат мог быть отозван досрочно. Проверка выполняется по спискам отзыва (CRL) или протоколу OCSP.
  • Единый набор корней. Убедитесь, что корневой сертификат присутствует в доверенном хранилище системы, которая выполняет проверку. Цепочка, верная на одном компьютере, может быть недоверенной на другом, где корень не установлен.

Типичные проблемы и их причины

Сообщение или признак Вероятная причина Что делать
«Истёк срок действия сертификата» Просрочен один из элементов цепочки, часто промежуточный Определить уровень по дереву пути; получить актуальный промежуточный сертификат у издателя
«Сертификат ещё не действует» На компьютере сбито системное время либо сертификат выпущен «с запасом» на будущее Сверить часы и часовой пояс; перепроверить после синхронизации времени
Цепочка не строится до корня На сервере или в документе нет промежуточного сертификата Установить недостающий промежуточный сертификат из надёжного источника издателя
Подпись была действительной, теперь нет Не было метки времени, и срок сертификата истёк после подписания Для новых подписей включать метку времени; старые документы — решать вопрос с владельцем сертификата или архивной службой
Доверие есть на одном ПК, но нет на другом Корневой сертификат отсутствует в локальном хранилище доверия Установить корневой сертификат вручную из официального источника УЦ

Порядок действий при обнаружении просроченного сертификата

  1. Определите, какой именно уровень цепочки истёк: личный, промежуточный или корневой. Это видно в дереве пути сертификации.
  2. Если истёк личный сертификат — перевыпустите его в удостоверяющем центре. Старые подписи без метки времени восстановить средствами проверки нельзя: потребуется повторное подписание документов тем, кто имел доступ к ключу.
  3. Если истёк промежуточный — скачайте актуальную версию с сайта удостоверяющего центра и установите в хранилище «Промежуточные центры сертификации». Часто это решает проблему сразу для множества пользователей организации.
  4. Если истёк корневой — обновите корневые сертификаты операционной системы (в Windows это делается через обновления или вручную) либо установите новый корень УЦ.
  5. После исправления выполните повторную проверку подписи и убедитесь, что все звенья показывают зелёный статус, а дата попадает в интервалы действия.

Как избежать проблем заранее

  • Всегда добавляйте метку времени при подписании важных документов: она фиксирует момент подписания и защищает подпись от «старения» вместе с сертификатом.
  • Следите за сроком действия личного сертификата и планируйте перевыпуск заранее — обычно УЦ напоминают об этом, но напоминание легко пропустить.
  • Храните копии промежуточных сертификатов, которыми были выпущены ваши рабочие сертификаты: они понадобятся для проверки старых документов.
  • При обмене подписанными файлами с контрагентами уточняйте, какой криптопровайдер и какие корневые сертификаты используются, чтобы их система могла достроить цепочку.
  • Для критичных архивов рассмотрите формат долгосрочного хранения подписи (например, вложение полной цепочки и меток времени в сам документ), чтобы проверка не зависела от доступности внешних ресурсов.

Частые вопросы

Можно ли проверить подпись, если сертификат уже истёк?

Да, если в подписи есть доверенная метка времени, подтверждающая, что подпись создана до истечения срока. Без метки времени большинство средств проверки выдаст ошибку, даже если документ не изменялся.

Достаточно ли проверить даты, чтобы считать подпись надёжной?

Нет. Даты — лишь одно из условий. Нужно также проверить целостность подписи, отсутствие отзыва сертификатов и наличие полного пути до доверенного корня.

Почему браузер показывает сайт как безопасный, а отдельная программа ругается на цепочку?

Разные программы используют разные хранилища доверенных корней и разные правила построения цепочки. Браузер может доверять корню, которого нет в хранилище другой программы, или наоборот.

Где взять актуальные корневые и промежуточные сертификаты?

Только у самого удостоверяющего центра или из официальных обновлений операционной системы. Файлы сертификатов из сторонних источников — частый канал подмены доверия.

Что запомнить

Главный принцип: подпись сильна настолько, насколько сильно самое слабое звено её цепочки. Перед любой ответственной проверкой откройте полный путь сертификации и сверьте даты каждого уровня, а не только личного сертификата. Для документов, которые должны оставаться проверяемыми годами, закладывайте метку времени в момент подписания — это дешевле и проще, чем восстанавливать доказательства после истечения сертификата. Следующий практический шаг: откройте свойства одной из ваших действующих подписей прямо сейчас и убедитесь, что все звенья цепочки действительны, а метка времени присутствует.

Материал носит информационный характер и описывает общие принципы проверки электронных подписей. Конкретные требования зависят от типа подписи, юрисдикции и используемых программных средств; при работе с юридически значимыми документами сверяйтесь с актуальными нормативными требованиями и рекомендациями вашего удостоверяющего центра.

PEFile.ru