У меня есть служба 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, когда я использую сертификат, который не работает, в средстве просмотра событий мы видим эту ошибку:
решено
Проблема заключалась в том, что мы получали сертификат, используя:
X509FindType.FindBySubjectName
И с тем предметом, который мы используем, есть как минимум еще 3 сертификата, которые содержат этот предмет. 1059и работает.