Статус: Новичок
Группы: Участники
Зарегистрирован: 29.01.2020(UTC) Сообщений: 2
|
Доброго времени суток. Не получается успешно отвалидировать цепочку сертификатов. Исследуя эту проблему я нашёл различие между сертификатом, который раньше работал хорошо (до истечения срока службы), и новым. Они были получены в разных УЦ и имеют различия в Authority Information Access. У старого сертификата в этой секции есть On-line Certificate Status Protocol (1.3.6.1.5.5.7.48.1) и Certification Authority Issuer (1.3.6.1.5.5.7.48.2), а в новом только Certification Authority Issuer. Из этого я делаю вывод, что в новом сертификате не указан OCSP сервер для проверки отозванных сертификатов. Код:
X509Chain chain = new X509Chain();
chain.Build(certificate);
chain.ChainPolicy.RevocationMode = X509RevocationMode.Online;
foreach (X509ChainElement element in chain.ChainElements)
{
bool isCertChainValid = element.Certificate.Verify(); // Здесь я получаю false
...
}
var errors = element.ChainElementStatus; // содержат ошибки
// RevocationStatusUnknown: The revocation function was unable to check revocation for the certificate.
// OfflineRevocation: The revocation function was unable to check revocation because the revocation server was offline
|
|
|
|
Статус: Эксперт
Группы: Участники
Зарегистрирован: 05.03.2015(UTC) Сообщений: 1,602 Откуда: Иркутская область Сказал(а) «Спасибо»: 110 раз Поблагодарили: 393 раз в 366 постах
|
Добрый день. Версии CSP / плагина / расширения? Возможно действительно проблема в этом, вывод об отсутствии адреса OCSP в сертификате корректен. Для ясности еще нужно смотреть адреса распространения CRL - хотя бы один адрес CRL должен быть доступен напрямую по http (без https или редиректов). Если CRL доступен напрямую по http, то возможно дело в RevocationMode, позволяющем только OCSP (точно за конкретную константу X509RevocationMode.Online не смогу сказать).
Если все CRL с редиректами или https (адрес CRL не указан с сертификате), то все не так радужно - или ставить вручную (раз в 24 часа, например) и проверять по локальному CRL или уточнять какая версия CSP и плагина их поддерживает. Старые версии однозначно не поддерживают, поэтому есть разные утилиты для автоматизации установки CRL.
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 29.01.2020(UTC) Сообщений: 2
|
Версия CryptoPro CSP 4.0.9963. В сертификате указан CLR Dstribution Point. По 2-м адресам без каких-либо редиректов и по http скачиваются *.crl файлы - списки отозванных сертификатов. Я так понимаю, что надо покопать в сторону RevocationMode? Хотя я попробовал запустить проверку сертификата на разных машинах. Описанная ошибка проверки сертификата возникает на сервере, где крутится сервис. Так же я попробовал поставить этот сертификат на другую машину и запустить эту же проверку. В результате всё прошло успешно. Может ли какая-нибудь политика конфиденциальности пользователя, под которым запущен процесс, мешать проверке сертификата?
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close