Asp. net Сбой промежуточного ПО для проверки подлинности основного сертификата клиента на сборке X509Chain - PullRequest
1 голос
/ 09 июля 2020

У нас есть специальное промежуточное ПО в приложении ASP. NET core 2.1, которое проверяет действительность сертификата клиента. Сертификат не является самоподписанным, а подписывается доверенным центром сертификации. Приложение размещено в службе приложений Azure. Мы получаем следующий ответ от состояния сети. В чем может быть проблема?

«Функция отзыва не смогла проверить отзыв сертификата. Функция отзыва не смогла проверить отзыв, поскольку сервер отзыва был отключен».

X509Chain ch = new X509Chain();
ch.ChainPolicy.RevocationMode = X509RevocationMode.Offline;
var verified = ch.Build(x509Certificate2);

когда мы меняем RevocationMode на онлайн, он работает по большей части, но в некоторых случаях мы получаем тот же статус цепочки: «Функция отзыва не смогла проверить отзыв сертификата, функция отзыва не смогла проверить отзыв, потому что сервер отзыва был отключен».

X509Chain ch = new X509Chain();
ch.ChainPolicy.RevocationMode = X509RevocationMode.Online;
var verified = ch.Build(x509Certificate2);

1 Ответ

2 голосов
/ 10 июля 2020

Когда вы используете X509RevocationMode.Offline, тогда проверка, скорее всего, не удастся, потому что CryptoAPI будет искать только локально кэшированную информацию об отзыве, которая вряд ли существует на сервере.

Когда вы используете X509RevocationMode.Online, тогда CryptoAPI попытается связаться с серверами отзыва (как указано в расширениях CDP и AIA), чтобы получить информацию об отзыве для каждого сертификата в цепочке. Если информация об отзыве недоступна для какого-либо сертификата или устарела, вы получите ошибку RevocationOffline. В таких случаях вам может потребоваться отладить каждый URL-адрес в расширении CDP и AIA для каждого сертификата и выяснить, что там не так.

Вдобавок возникает ошибка RevocationOffline, когда URL-адрес доступен, но время ожидания для URL-адреса истек.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...