| Предыдущий | Следующий |
| CERT_E_CHAINING | CERT_E_REVOKED |
TRUST_E_FAIL
Что означает TRUST_E_FAIL
TRUST_E_FAIL (0x800B010B) — общий сбой доверия. В отличие от TRUST_E_NOSIGNATURE, CERT_E_EXPIRED, CERT_E_UNTRUSTEDROOT и других более точных кодов, он не сообщает, на каком именно условии политика доверия отказала.
Поэтому сам 0x800B010B недостаточен для решения. Нужно сохранить контекст проверки и найти более узкий chain/policy status или событие, которое появилось раньше общего результата.
Что проверить
- Если используется
WinVerifyTrust/WinVerifyTrustEx, сохраните action GUID, тип субъекта, путь или handle объекта и параметрыWINTRUST_DATA. - Подтвердите, что подпись действительно присутствует и относится к проверяемому объекту. Отсутствие подписи должно диагностироваться отдельно как
TRUST_E_NOSIGNATURE. - Проверьте построенную цепочку: срок действия, trusted root, revocation status, назначение сертификата и explicit distrust. Эти условия имеют собственные коды и дают более полезную причину.
- Сопоставьте время проверки с timestamp подписи и системным временем. Для подписанного файла политика может оценивать сертификат относительно timestamp, а не только текущего времени.
Как подтвердить исправление
Исправьте конкретную причину, найденную в chain/policy diagnostics, и повторите ту же trust action для того же объекта. Отключение revocation checking, снижение policy requirements или исключение файла из проверки не считается подтверждением исправления.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.