Функция отзыва не смогла проверить отзыв для сертификата

Вопрос:Я пытаюсь проверить, что сертификат не был отозван с использованием X509Chain в С#. X509Chain chain = new X509Chain(); chain.ChainPolicy.RevocationMode = X509RevocationMode.Online; chain.ChainPolicy.RevocationFlag = X509RevocationFlag.EndCertificateOnly; chain.Build(certificate); Возвращает статус: Функция аннулирования не смогла проверить отзыв для сертификата Я хочу проверить отмененные сертификаты, а не просто отключить эту ошибку. Как решить эту проблему или по крайней мере лучше

Вопрос:

Я пытаюсь проверить, что сертификат не был отозван с использованием X509Chain в С#.

X509Chain chain = new X509Chain(); chain.ChainPolicy.RevocationMode = X509RevocationMode.Online; chain.ChainPolicy.RevocationFlag = X509RevocationFlag.EndCertificateOnly; chain.Build(certificate);

Возвращает статус:

Функция аннулирования не смогла проверить отзыв для сертификата

Я хочу проверить отмененные сертификаты, а не просто отключить эту ошибку.

Как решить эту проблему или по крайней мере лучше понять причину (например, как узнать, где она проверяет CRL?)

Лучший ответ:

Проверка отзыва включает проверку статуса сертификата в CRL и использование OCSP для онлайн-проверки состояния. Документация предполагает, что .NET проверяет только CRL, но “Интернет”, вероятно, означает, что CRL должен быть загружен. В этом случае ваша ошибка может означать, что местоположение CRL не может быть найдено (нет в сертификате), или оно не может быть достигнуто.

Первый шаг: проверить, содержит ли сертификат место CRL. Вы можете увидеть это в свойствах сертификата – там есть расширение точки распространения CRL.

Если присутствует CRL и указывает URL-адрес HTTP/HTTPS, вы можете проверить этот URL-адрес, чтобы узнать, доступен ли он.

К сожалению, хотя эти шаги могут быть автоматизированы, они не охватывают какой-либо источник проблемы – CRL может быть искажен или сервер может вернуть не CRL (но, например, ответ об ошибке) или подпись в CRL недействительно. Таким образом, приведенные выше шаги дадут вам только основную информацию о проблеме.

Я не знаю, сможет ли .NET произвести более содержательное описание отказа. В наших компонентах (SecureBlackbox) мы предоставляем более подробную информацию о сбоях, и этот вопрос часто встречается в технической поддержке, несмотря на наличие обширной статьи часто задаваемых вопросов по этой теме.

Оцените статью
Добавить комментарий