30.01.2006 16:13:29Валидность сертификата Ответов: 8
Алексей
Пытаюсь проверить валидность сертификата. Выставляю вот такие флаги:
CertCreateCertificateChainEngine - CERT_CHAIN_CACHE_END_CERT;
CertGetCertificateChain - CERT_CHAIN_REVOCATION_CHECK_CHAIN | CERT_CHAIN_TIMESTAMP_TIME.
Пока что разбираюсь с СОС. Если он установлен локально, то все проходит без проблем. Если же СОС есть по инету, то вылетает ошибка 16777280 (PCCERT_CHAIN_CONTEXT->TrustStatus.dwErrorStatus). Если локально установлен "истекший" СОС, то вылетает эта же ошибка, хотя этой ошибки нет в описании возможных значений dwErrorStatus в MSDN. Как так?
И еще вопрос: какие флаги надо выставить, чтобы при проверке брался сертификат из точки распространения?
 
Ответы:
30.01.2006 16:45:37Kirill Sobolev
Это ошибка CERT_TRUST_REVOCATION_STATUS_UNKNOWN | CERT_TRUST_IS_OFFLINE_REVOCATION, т.е. не найден действующий СОС локально и не удалось получить его откуда-то извне (Internet/Intranet).
Не уверен, что функция построения цепочек от MS в принципе умеет лазить за сертификатами издателей.
31.01.2006 6:34:09Алексей
И какие есть варианты выхода из этого? Самому копировать СОС из интернета и устанавливать его в хранилище? А есть еще какие-нибудь грабли в проверке валидности, а то окажется что эти функции вообще неработоспособны ;-)
31.01.2006 10:42:47Kirill Sobolev
Нами разработан компонент crlupdate, который сам скачивает и устанавливает СОС.
При проверке корневной сертификат обязательно должен находиться в Root, проверку на отзыв можно осуществлять только на текущее время.. Вроде все грабли.
31.01.2006 18:52:51Алексей
Я так понимаю, что этот компонент (crlupdate) необходимо преобретать у вас? В любом случае можно про него поподробнее, через какой промежуток времени он качает СОС из точки распространения? Или ссылку на его описание, если есть таковая.
01.02.2006 10:29:40Kirill Sobolev
ссылки нет.
промежуток времени задается программно
01.02.2006 12:39:36Алексей
Его надо покупать или его можно бесплатно скачать откуда-то?
01.02.2006 17:42:41Kirill Sobolev
К сожалению Вы не указали email, так что компонент теперь выложен на наш сайт.
http://www.cryptopro.ru/pub/CRLUpdate/cpcrlupdate.zip
02.02.2006 5:58:41Алексей
Спасибо, посмотрю что он из себя представляет. Адрес просто не указываю на форуме, а то провайдер плохо борится со спамом ;)