Пример настройки двухфакторной аутентификации

В приведенном ниже примере используется версия OpenSSL для ОС Microsoft Windows. Предполагается использование конфигурации с сервером безопасности, настроенном на веб-сервере IIS. В примере продемонстрированы шаги для создания трех сертификатов:

1. Предварительные настройки OpenSSL

Для выполнения примера были заданы следующие предварительные настройки OpenSSL:

  1. В файле конфигурации «openssl.cnf» изменен параметр «dir» внутри поля [CA_default] на «C:/iis».

  2. Создана папка «C:\iis» и «C:\iis\newcerts».

  3. В папке «C:\iis» создано два файла: пустой «index.txt» и файл без разширения «serial», содержащий значение «01».

2. Создание и установка корневого сертификата

Корневой сертификат необходим для подписания сертификата клиента и сервера.

Создание корневого сертификата

Для создания корневого сертификата откроем OpenSSL и введем в командной строке:

req -new -x509 -days 1000 -out c:\iis\ca.crt -keyout c:\iis\ca.key -config openssl.cnf

При выполнении команды будут запрошены дополнительные данные: PEM пароль и пользовательские данные о владельце сертификата.

Совет. При необходимости можно поменять срок действия сертификата в команде или в настройках OpenSSL по умолчанию.

Установка созданного сертификата

Созданный сертификат необходимо установить в хранилище доверенных центров:

  1. Вызовем консоль управления, выполнив (горячая клавиша WIN+R) команду «mmc».

  2. Добавим (горячая клавиша CTRL+M) оснастку сертификаты для учетной записи локального компьютера.

  3. Импортируем, ранее созданный сертификат, в папку «Доверенные корневые центры сертификации -> Сертификаты»:

3. Создание и установка сертификата сервера

Сертификат сервера используется веб-сервером IIS для проверки подлинности сертификатов клиентов, для создания и подписания сертификата сервера выполните следующие шаги:

Создание запроса сертификата

  1. В диспетчере служб IIS перейдем на страницу настройки сертификатов, нажав кнопку Сертификаты сервера.

  2. Выполним команду «Создать запрос сертификата» контекстного меню или боковой панели.

  3. Заполним поля о пользователе сертификата.

  4. При запросе имени файла сохраним запрос в папке «C:\iis» под именем «server.csr».

Подписание запроса сертификата

Созданный запрос необходимо подписать корневым сертификатом. Откроем консоль OpenSSL и введем команду:

ca -days 1000 -policy policy_anything -keyfile c:\iis\ca.key -cert c:\iis\ca.crt -in c:\iis\server.csr -out c:\iis\server.cer -config openssl.cnf

При выполнении команды будет получен запрос PEM пароля и уточняющие вопросы. После введения данных будет создан сертификат.

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

Подписанный файл сертификата сервера необходимо установить на веб-сервер IIS:

  1. В диспетчере служб IIS перейдем на страницу настройки сертификатов, нажав кнопку «Сертификаты сервера».

  2. Выполним команду «Запрос установки сертификата» контекстного меню или боковой панели.

  3. Укажем путь до подписанного сертификата «C:\iis\server.cer».

В результате на веб-сервер IIS будет установлен подписанный сертификат сервера.

4. Настройки параметров подключения

Добавление https привязки

  1. В диспетчере служб IIS перейдем на страницу сайта, например «Default Web Site».

  2. Выполним команду «Привязки» контекстного меню или боковой панели.

  3. Добавим новую привязку: в поле Тип укажем «https», в выпадающем списке укажем созданный ранее сертификат сервера.

Параметры SSL

Включим параметры SSL для используемого веб-сайта/приложения:

  1. В диспетчере служб IIS перейдем на страницу настройки параметров SSL, нажав кнопку «Параметры SSL».

  2. Установим флажок «Требовать SSL» и переключатель «Требовать сертификат клиента».

Настройка параметров подключения

При двухфакторной аутентификации для подключения к веб-сервису используется протокол https.

В настройках подключения пользователя к серверу безопасности необходимо указать адрес до веб-сервиса с учетом защищенного протокола:

https://<рабочая станция>/PPSS_App_v8.1x64/axis2/services/PP.SOM.SomSec

При использовании BI-сервера совместно с сервером безопасности необходимо задать https соединение на всех этапах.

5. Создание сертификата клиента

Создание запроса сертификата клиента

Для создания запроса в консоли OpenSSL введем команду:

req -new -days 1000 -keyout c:\iis\client.key -out c:\iis\client.csr -config openssl.cnf

При выполнении команды будет предложено задать PEM пароль и дополнительную информацию и владельце сертификата.

После введения всех данных будет создан ключ и запрос на сертификат клиента.

Подписание запроса сертификата

Созданный запрос необходимо подписать корневым сертификатом. Откроем консоль OpenSSL и введем команду:

ca -days 1000 -policy policy_anything -keyfile c:\iis\ca.key -cert c:\iis\ca.crt -in c:\iis\client.csr -out c:\iis\client.cer -config openssl.cnf

При выполнении команды будет получен запрос PEM пароля и уточняющие вопросы. После введения данных будет создан сертификат.

Сохранение сертификата в контейнере

Для возможности импортировать сертификат в хранилище сертификатов вместе с ключом, необходимо конвертировать сертификат с ключом в контейнер *.pfx.

Введем в консоли OpenSSL команду:

pkcs12 -export -inkey c:\iis\client.key -in c:\iis\client.crt -out c:\iis\client.pfx

При выполнении команды будет получен запрос PEM пароля.

После создания контейнера его необходимо передать на компьютер клиента и импортировать в хранилище сертификатов.

6. Привязка сертификата к пользователю

Привязка сертификата к конкретному пользователю производится на вкладке «Общие свойства» в свойствах пользователя:

Выполним команду «Из файла» раскрывающегося меню кнопки «Добавить» и укажем созданный для клиента сертификат.

В результате доступ пользователя к репозиторию будет разрешен только при предъявлении сертификата пользователя.

7. Проверка работы сертификатов

Перед проверкой работы сертификатов перезагрузим веб-сервер IIS.

Для проверки работы запросов сертификатов проверим доступ к веб-сервису сервера безопасности. В браузере перейдем по адресу:

https://<рабочая станция>/PPSS_App_v8.1x64/axis2/services

При корректной настройке будет показано окно выбора сертификата для аутентификации на сайте.

Если сертификат был указан корректно, будет отображена страница с доступными операциям веб-сервиса.

См. также:

Двухфакторная аутентификация