Аутентификация при помощи сертификата

Рейтинг: 1Ответов: 1Опубликовано: 08.09.2014

Как надо настроить IIS и сайт, чтобы можно было сделать аутентификацию по сертификату пользователя? Хотелось бы, чтобы при попытке обращения к сайту у пользователя запрашивался сертификат и после его выбора осуществлялся вход на сайт и данные сертификата становились бы доступны в Request.ClientCertificate.

В наличии windows 8, IIS 8, visual studio 2012. Сайт пишу на MVC 4.

На текущий момент настроил сайт с доступом по SSL. Если в настройках сайта не указывать параметры "Требовать SSL" и указать "Игнорировать сертификаты клиента", то сайт запускается нормально. Иначе выдает ошибку. Окно запроса сертификата не появилось ни разу.

Подскажите, что я еще не доделал?

Ответы

▲ 1

Вопрос решился. Проблема была в неправильном сертификате сервера.

Кому интересно, все заработало после этого:

Общие действия:

  1. Установил VipNet CSP 4.1 (просто решил попробовать с ним :), но, думаю, с другими криптопровайдерами будет аналогично).

Установка сертификата на сервер:

  1. Сделал запрос на сертификат для web-сервера при помощи "Создание запроса на сертификат" из пакета VipNet CSP в формат *.p10 в кодировке Base64.
  2. При помощи сервиса https://www.cryptopro.ru/certsrv сделал тестовый сертификат.
  3. При помощи VipNet CSP открыл контейнер, который был выбран (или создан) при создании запроса и установил в него присланный сертификат.
  4. Скачал и установил в корневые доверенные сертификаты - сертификат тестового сервера КриптоПро.
  5. Установил созданный сертификат сервера в хранилище сертификатов компьютера. В IIS, после этого, в "Сертификатах сервера" этот сертификат должен быть доступен.
  6. На сайте сделал привязку по https с указанием созданного сертификата.

Установка тестового клиентского сертификата:

Эта процедура выполняется выполняется аналогично, но при создании запроса тип выписываемого сертификата используется "Шифрование и подпись" и установка выполняется в личное хранилище сертификатов.

Чтобы сертификат стал запрашиваться при обращении к сайту, для него в параметрах SSL надо указать "Требовать SSL" и "Требовать сертификат клиента".

Проверял с тестовым сертификатом и с сертификатом на карте УЭК.