Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Matsa1992  
#1 Оставлено : 10 сентября 2020 г. 15:19:32(UTC)
Matsa1992

Статус: Новичок

Группы: Участники
Зарегистрирован: 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
Offline two_oceans  
#2 Оставлено : 11 сентября 2020 г. 5:15:05(UTC)
two_oceans

Статус: Эксперт

Группы: Участники
Зарегистрирован: 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.
Offline Matsa1992  
#3 Оставлено : 11 сентября 2020 г. 8:45:54(UTC)
Matsa1992

Статус: Новичок

Группы: Участники
Зарегистрирован: 29.01.2020(UTC)
Сообщений: 2

Версия CryptoPro CSP 4.0.9963.
В сертификате указан CLR Dstribution Point. По 2-м адресам без каких-либо редиректов и по http скачиваются *.crl файлы - списки отозванных сертификатов.
Я так понимаю, что надо покопать в сторону RevocationMode?
Хотя я попробовал запустить проверку сертификата на разных машинах. Описанная ошибка проверки сертификата возникает на сервере, где крутится сервис. Так же я попробовал поставить этот сертификат на другую машину и запустить эту же проверку. В результате всё прошло успешно. Может ли какая-нибудь политика конфиденциальности пользователя, под которым запущен процесс, мешать проверке сертификата?
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.