Что означает код HRESULT 0x800B0106 (CERT_E_PURPOSE)?

 
Предыдущий Следующий
CERT_E_CRITICAL CERT_E_ISSUERCHAINING

CERT_E_PURPOSE

Как локализовать первичный отказ

CERT_E_PURPOSE — не общий признак «что-то сломалось», а состояние Сертификат используется не по назначению, разрешённому центром сертификации. Первичный эксперимент должен воспроизводить именно построение и policy-проверка цепочки X.509.

Что нужно для воспроизведения

  • Зафиксируйте полную выбранную цепочку, trust status каждого элемента, verification time, EKU/policy/name и revocation evidence; для этого результата эти данные должны относиться к первому неуспешному вызову, а не к последующей очистке.
  • Отдельно сравните требуемый usage с EKU/Key Usage и application policy цепочки. Это проверяет условие «Сертификат используется не по назначению, разрешённому центром сертификации» по фактическим параметрам, а не по имени константы.

Последовательность локализации

Сначала сравнить тот же сертификат при одной изменённой policy/chain предпосылке и повторить проверку; затем верните остальные параметры исходного случая. Причина подтверждается, если результат меняется вместе с проверяемой предпосылкой.

Избегайте недоказанного workaround: не добавлять корень в Trusted Root только ради исчезновения HRESULT. После исправления должен проходить тот же контракт, который раньше возвращал HRESULT.

Технические ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.