CryptoPro: ошибка 0x800B0101 — сертификат недействителен/истёк в Windows 10/11 — как исправить (2026)

Если при подписи или проверке сертификата Вы видите 0x800B0101 (часто рядом пишут «Срок действия сертификата истёк» или «Сертификат недействителен»), это не всегда значит, что всё пропало. Иногда виноваты дата/время Windows, корневые сертификаты или недоступные списки отзыва (CRL/OCSP). Ниже простой план: от самых частых причин к редким.
Коротко: что проверить сразу
- Проверьте дату и время на ПК. Если часы ушли, подпись почти гарантированно сломается.
- Откройте сертификат и посмотрите срок действия (поле «Действителен с … по …»).
- Проверьте цепочку: есть ли «Корневой» и «Промежуточный» сертификаты, и написано ли «Этот сертификат действителен».
- Если ошибка появляется только в одной программе/сайте, попробуйте подпись в другом месте (например, в тестовой проверке CryptoPro).
0x800B0101: что это означает по-человечески
Ошибка относится к проверке доверия сертификату. Простыми словами, Windows или CryptoPro не могут подтвердить, что сертификат сейчас «хороший». Причины обычно такие:
- Срок истёк у самого сертификата подписи.
- Срок истёк у промежуточного или корневого сертификата в цепочке.
- Windows считает, что сертификат отозван (по CRL) или не может проверить отзыв, а политика проверки жёсткая.
- На ПК не хватает корневых сертификатов или они повреждены.
- Сбито время/дата, из-за чего «вчерашний» сертификат внезапно становится «из будущего».
Важно: чаще всего это решается настройками и обновлением доверия. Покупать новый токен или переустанавливать Windows обычно не требуется.
1) Проверяем срок действия сертификата (2 минуты)
Сначала убедимся, что сертификат вообще не закончился. Делается так:
- Нажмите Win+R → введите
certmgr.msc→ Enter. - Слева откройте: Личное → Сертификаты.
- Найдите нужный (обычно по ФИО/организации) и дважды кликните.
- На вкладке «Общие» посмотрите строку Действителен с … по ….
Если срок истёк, исправление простое: нужно перевыпустить сертификат в УЦ. Техническими танцами его «оживить» нельзя.
2) Проверяем цепочку и доверие
Бывает так: Ваш сертификат ещё действующий, но один из сертификатов выше по цепочке уже не доверенный. Тогда Windows ругается тем же кодом.
- Откройте сертификат (как в шаге выше).
- Перейдите на вкладку Путь сертификации.
- Кликните по каждому элементу цепочки и смотрите статус внизу.
Если видите сообщения вроде «Корневой сертификат не доверен» или «Не удаётся построить цепочку», делаем дальше:
- Обновляем корневые сертификаты (раздел ниже).
- Проверяем, что сертификаты УЦ установлены в правильные хранилища.
3) Обновляем корневые сертификаты Windows
В Windows корневые сертификаты обычно обновляются сами через Центр обновления. Но если обновления выключены или есть ограничения сети, доверие может «отвалиться».
Вариант без команд:
- Откройте «Параметры» → «Центр обновления Windows».
- Нажмите «Проверить наличие обновлений» и дождитесь окончания.
- Перезагрузите ПК.
Если нужно быстро вручную:
Командная строка (Администратор) — выполнять по одной:
certutil -generateSSTFromWU roots.sst
certutil -addstore -f root roots.sst
4) Проверяем время и часовой пояс
Если время ушло даже на пару дней, сертификаты легко становятся «недействительными».
- Кликните по часу в трее → «Настройка даты и времени».
- Включите «Устанавливать время автоматически» и нажмите «Синхронизировать».
Командная строка (Администратор) — выполнять по одной:
net stop w32time
w32tm /resync
net start w32time
5) CRL/OCSP: когда списки отзыва не скачиваются
Иногда система не может проверить отзыв сертификата из-за блокировок сети, прокси или антивируса.
Что сделать по-простому:
- Временно отключите сторонний антивирус (если он есть) и попробуйте снова.
- Проверьте прокси: «Параметры» → «Сеть и интернет» → «Прокси».
- Перезагрузите роутер и попробуйте другой DNS (лучше оставить «Автоматически», если не уверены).
PowerShell (не обязательно от администратора) — вставить целиком:
$thumb = Read-Host "Введите отпечаток (Thumbprint) сертификата"
$cert = Get-ChildItem Cert:\CurrentUser\My\ | Where-Object { $_.Thumbprint -eq $thumb }
if(-not $cert){ "Сертификат не найден в CurrentUser\My"; return }
"Subject: " + $cert.Subject
"Valid: " + $cert.NotBefore + " — " + $cert.NotAfter
""
"== AIA/OCSP/CRL URL =="
$cert.Extensions | ForEach-Object { $_.Format($true) } | Select-String -Pattern "http","ldap","ocsp","crl" -SimpleMatch
6) Проверяем CryptoPro и хранилища сертификатов
Проверьте, что сертификат и ключ видны в CryptoPro CSP. Если сертификат «без закрытого ключа», проблема может быть в контейнере (токен/профиль/PIN).
Важно: скачивайте CryptoPro и драйверы токенов только с официальных сайтов производителей.
Типичные причины, почему 0x800B0101 появляется внезапно
- Закончился срок сертификата или промежуточного звена в цепочке.
- Сбились часы после отключения питания/замены батарейки CMOS.
- Не скачиваются CRL/OCSP из-за прокси, DNS или антивируса.
- Отключены обновления и система не обновила корневые сертификаты.
Диагностика: что собрать
Командная строка (Администратор) — выполнять по одной:
ver
wmic os get Caption,Version,BuildNumber
reg query "HKLM\SOFTWARE\Crypto Pro\CSP" /v Version
FAQ
Если сертификат истёк, можно ли просто «поправить дату»?
Нет. Это не решение. Нужен перевыпуск сертификата в УЦ.
Ошибка только на одном сайте, а в другом всё нормально.
Чаще всего отличается политика проверки или недоступны CRL/OCSP. Начните с раздела про CRL/OCSP и проверьте прокси/DNS.