Для справки, если кто-то еще пытается применить аутентификацию сертификата клиента, для его работы потребовались следующие шаги (для этого экземпляра мы используем basicHttpBinding в WCF и работаем в локальном экземпляре IIS):
- Настройка IIS для использования привязки HTTPS для сайта и защита его в IIS с помощью сертификата сервера
- В IIS измените параметры SSL для вашего сайта на Требовать SSL и Требовать клиентские сертификаты (Это должно быть Требовать- Принять не будет работать)
- В конфигурации WCF измените basicHttpBinding и установите режим безопасности на «Transport», а транспортный clientCredentialType на «Certificate»
Убедитесь, что корневой сертификат (тот, который используется для создания любых клиентских сертификатов) находится в «доверенных корневых центрах сертификации» для локального компьютера, на котором работает IIS.
ПРИМЕЧАНИЕ. Если вы находитесь в среде разработки, вам может потребоваться создать собственный корневой каталог.сертификат, сделанный комми линия приложения очень полезна для этого;просто выполните следующую команду: makecert -n "CN = Моя проверка подлинности" -r -cy полномочия -a sha1 -sv "Мой личный ключ.pvk" TestAuth.cer
Это создает сертификат с именем TestAuth.cer(который должен быть добавлен в «Доверенные корневые центры сертификации компьютера») и файл закрытого ключа с именем «My Private Key.pvk».
Теперь, чтобы сгенерировать сертификат клиента, вы можете запустить эту команду: makecert -sha1 -n "CN = myConnectionCert" -ic "TestAuth.cer" -iv "My Private Key.pvk" -ss My
Это создало сертификат с темой myConnectionCert и добавило его в ваш личный сертификат.магазин - когда вы сейчас заходите на сайт (например, для просмотра страницы службы), IE должен предложить вам выбрать сертификат - выберите тот, который вы только что создали, и вы увидите страницу службы как обычно.