System.Net.WebException: удаленный сервер возвратил ошибку: (403) Запрещено - PullRequest
0 голосов
/ 11 марта 2019

У меня есть служба WCF, для которой требуется аутентификация клиента с помощью сертификата.

У меня есть простое консольное приложение, которое использует этот WCF.

У меня есть 2 сертификата клиента, первый из которых -Консольные приложения работают отлично, а со вторым он возвращает эту ошибку:

System.ServiceModel.Security.MessageSecurityException: The HTTP request was forbidden with client authentication scheme 'Anonymous'. ---> System.Net.WebException: The remote server returned an error: (403) Forbidden.

Как я вижу в журналах IIS, это 403,7.

Оба сертификата установлены водно и то же хранилище и оба имеют одинаковые разрешения в Управление личными ключами для пользователя, запускающего консольное приложение.

Оба сертификата имеют:

  • Закрытый ключ
  • Использование ключа : цифровая подпись, невозвращение, шифрование ключа, шифрование данных (f0)
  • расширенное использование ключа: Аутентификация клиента (1.3.6.1.5.5.7.3.2)
  • Действительны ли и имеют ли тот же путь сертификации

Есть идеи?

ОБНОВЛЕНИЕ

Если я активируюВ журнале SCHANNEL, когда я использую сертификат, который не работает, в средстве просмотра событий мы видим эту ошибку:

**enter image description here**

решено

Проблема заключалась в том, что мы получали сертификат, используя:

X509FindType.FindBySubjectName

И с тем предметом, который мы используем, есть как минимум еще 3 сертификата, которые содержат этот предмет. 1059и работает.

1 Ответ

0 голосов
/ 12 марта 2019

Зависит от режима проверки сертификата сервера. enter image description here Например, когда мы используем CertificationValidationMode = Custom , мы можем указать пользовательский класс X509validator, который реализует

System.IdentityModel.Selectors.X509CertificateValidator

Может иметь пользовательскую проверку при обработке сертификата клиента.
Если CertificateionValidationMode = ChainTrust , вы должны убедиться, что клиент хранится в нужной области хранилища и в одной цепочке с сертификатом сервера. Что такое режим проверки сертификата сервера?
Не стесняйтесь обращаться ко мне, если есть что-то, с чем я могу помочь.

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