Настройка аутентификации сопоставления сертификатов клиента IIS (клиенту требуется закрытый ключ) - PullRequest
0 голосов
/ 31 мая 2018

Я начал разрабатывать безопасный веб-сервис и изучаю концепции SSL.

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

Что у меня есть (Ресурсы):

Действительный сертификат, выданный моему сайту * .wildcard.com, этот сертификат установлен на моем сервере с открытым IP-адресом и доменом сопоставлен с подстановочным знаком.ком.Этот сертификат используется для настройки привязки SSL (443) для моего сайта.Целью этого сертификата является Аутентификация сервера (1.3.6.1.5.5.7.3.1) Аутентификация клиента (1.3.6.1.5.5.7.3.2).

Что я пробовал до сих пор:

Среда на стороне сервера

В IIS я настроил свой веб-сервис @ https://wildcard.com/SSLTest/Connect.asmx и установил параметры SSL как:

[Настройки SSL IIS] (https://drive.google.com/file/d/1BGqXjj1Xh365lSm0NU_jXr0CheR6DpK5/view?usp=sharing)

Затем в редакторе конфигурации -> system.webServer / security / authentication / iisClientCertificateMappingAuthentication

Я попытался настроить onetoOneMappings как:

[OnetoOneMapping] (https://drive.google.com/file/d/1vga_cieP-8iJzl9aLflGTFP-yDaG0xn4/view?usp=sharing)

в указанных выше настройках сертификат - это значение между Начальной и Конечной строкой сертификата из файла .cer (открытый ключ), созданного с использованием сертификата SSL.

Среда на стороне клиента:

Я написал консольное приложение (C # .net), которое отправляет SOAP-запрос с использованием HTTPWebRequest .net framework и добавляет сертификат клиента в объект запроса как

webRequest.ClientCertificates.Add(cert);

Этот сертификат выбран изклиентская машина using:

X509Store computerCaStore = new X509Store(StoreName.My, StoreLocation.LocalMachine);

и затем отправляется запрос на https://wildcard.com/SSLTest/Connect.asmx. Но я получаю сообщение об ошибке 403.7 Forbidden Error.Когда я отправляю сертификат (с закрытым ключом), это работает.

Обязательно ли отправлять закрытый ключ с клиентского компьютера в запросе?Если да, то безопасность подвергается риску, поскольку мы не можем делиться секретным ключом с другими.Итак, как я собираюсь раздавать открытый ключ клиентам, чтобы они могли получить доступ к веб-сервису.Или, может быть, я неправильно понял сценарий?Что такое использование iisClientCertificateMappingAuthentication в IIS?

~ Спасибо

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