26.07.2007 16:08:48 | При проверки цепочки сертификата выдает CERT_TRUST_IS_SELF_SIGNED | | Ответов: 10 |
|
Dim | | |
|
Ситуация следующая.
Есть служба. В определенный момент времени она пытается получить личный сертификат. Получает его и проверяет цепочку. Проверка выдает CERT_TRUST_IS_SELF_SIGNED. Помогает только перезапуск службы. Что это за ошибка? Описание в MSDN очень скудное. |
|
Ответы:
|
26.07.2007 17:56:36 | Kirill Sobolev |
|
Это значит что проверяемый сертификат самоподписанный. Это не ошибка, просто констатация факта. |
|
|
Я тоже так думал.
Но ведь он не самоподписанный. Может быть причина в том , что в один момент времени сертификат пытаются получить сразу несколько потоков. Хотя потом потоки в разное время пытаются получить сертификат. |
|
27.07.2007 13:36:55 | Kirill Sobolev |
|
Потоки тут непричем. А где этот статус возвращается? |
|
|
Есть некая функция которая ищет сертификат в заданом хранилище, по серийному номеру и издателю. После того как найден сертификат, проводим проверку цепочки:
CertCreateCertificateChainEngine()
CertGetCertificateChain(,,,,,,,&pChainContext)
и после вызова в pChainContext->TrustStatus.dwErrorStatus получаем кучу всякого и в том числе CERT_TRUST_IS_SELF_SIGNED. Подобная ситуация возникает от случая к случаю. |
|
27.07.2007 15:08:21 | Kirill Sobolev |
|
Понятно.
CERT_TRUST_IS_SELF_SIGNED - это константа, которая может быть в поле pChainContext->TrustStatus.dwInfoStatus. Равна она 0x00000008. Если же это значение присутствует в dwErrorStatus, то оно имеет совершенно другой смысл - CERT_TRUST_IS_NOT_SIGNATURE_VALID, неверная ЭЦП сертификата, и тут действительно могут быть проблемы при проверке подписи в многопоточном приложении - зависит от криптопровайдера. |
|
|
Использую КриптоПро. Какой криптопровайдер незнаю. Как можно посмотреть? |
|
27.07.2007 16:53:04 | Kirill Sobolev |
|
Если подпись сертификатов в цепочки гостовая, то криптопровайдер КриптоПро CSP. Версию можно посмотрть в Панель управления - КриптоПро CSP. |
|
|
Тогда у меня КриптоПро CSP.
Как от этой ошибки избавиться? |
|
30.07.2007 10:01:40 | Kirill Sobolev |
|
Какой версии? |
|
|
Версия 3.03.3293.
И я вот, что вспомнил такая ситуация возникала во второй версии, в однопоточном приложении. Потом рассосалось само собой. |
|