В приведенном ниже примере используется последняя версия OpenSSL для ОС Windows. Предполагается использование конфигурации с сервером безопасности, настроенном на веб-сервере IIS. В примере продемонстрированы шаги для создания трех сертификатов:
корневой сертификат - используется для подписи других сертификатов;
сертификат сервера - используется сервером для проверки сертификатов пользователей;
сертификат клиента - предоставляется пользователем для проверки на сервере.
Для настройки двухфакторной аутентификации необходимо выполнить все этапы данной инструкции.
Для выполнения примера были заданы следующие предварительные настройки OpenSSL:
В файле конфигурации openssl.cnf изменен параметр «dir» внутри поля [CA_default] на «C:/iis». Файл openssl.cnf расположен в папке «S\bin\cnf\», где S - путь до места установки OpenSSL, например, «C:\Program Files\OpenSSL-Win64\bin\cnf\».
Создана папка «C:\iis» и «C:\iis\newcerts».
В папке «C:\iis» создано два файла: пустой «index.txt» и файл без расширения «serial», содержащий значение «01».
Корневой сертификат необходим для подписания сертификата клиента и сервера.
Для создания корневого сертификата:
Перейдем в директорию с установленным OpenSSL с помощью командной строки:
cd C:\Program Files\OpenSSL-Win64
openssl req -new -x509 -days 1000 -out c:\iis\ca.crt -keyout c:\iis\ca.key -config .\bin\cnf\openssl.cnf
При выполнении команды будут запрошены дополнительные данные: PEM пароль и пользовательские данные о владельце сертификата.
Совет. При необходимости можно поменять срок действия сертификата в команде или в настройках OpenSSL по умолчанию.
Созданный сертификат необходимо установить в хранилище доверенных центров:
Вызовем консоль управления, выполнив (горячая клавиша WIN+R) команду «mmc».
Добавим (горячая клавиша CTRL+M) оснастку сертификаты для учетной записи локального компьютера.
Импортируем, ранее созданный сертификат, в папку «Доверенные корневые центры сертификации > Сертификаты»:
Сертификат сервера используется веб-сервером IIS для проверки подлинности сертификатов клиентов, для создания и подписания сертификата сервера выполните следующие шаги:
В диспетчере служб IIS перейдем на страницу настройки сертификатов, нажав кнопку «Сертификаты сервера».
Выполним команду «Создать запрос сертификата» контекстного меню или боковой панели.
Заполним поля о пользователе сертификата.
При запросе имени файла сохраним запрос в папке «C:\iis» под именем «server.csr».
Созданный запрос необходимо подписать корневым сертификатом. Откроем консоль OpenSSL и введем команду:
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 перейдем на страницу настройки сертификатов, нажав кнопку «Сертификаты сервера».
Выполним команду «Запрос установки сертификата» контекстного меню или боковой панели.
Укажем путь до подписанного сертификата «C:\iis\server.cer».
В результате на веб-сервер IIS будет установлен подписанный сертификат сервера.
Сохранение сертификата server.cer в формате PEM необходимо в том случае, если выполняется настройка входа через OAuth, при которой используется утилита PP.Util для сохранения сгенерированного сертификата в репозиторий. Откроем консоль OpenSSL и введем команду:
openssl x509 -in c:\iis\server.cer -out c:\iis\server.pem
После выполнения команды сертификат будет сохранен в формате PEM и доступен для использования утилитой PP.Util.
В диспетчере служб IIS перейдем на страницу сайта, например «Default Web Site».
Выполним команду «Привязки» контекстного меню или боковой панели.
Добавим новую привязку: в поле Тип укажем «https», в выпадающем списке укажем созданный ранее сертификат сервера.
Включим параметры SSL для используемого веб-сайта/приложения:
В диспетчере служб IIS перейдем на страницу настройки параметров SSL, нажав кнопку «Параметры SSL».
Установим флажок «Требовать SSL» и переключатель «Требовать сертификат клиента».
При двухфакторной аутентификации для подключения к веб-сервису используется протокол https.
В настройках подключения пользователя к серверу безопасности необходимо указать адрес до веб-сервиса с учетом защищенного протокола:
https://<рабочая станция>/fpSS_App_v9.2x64/axis2/services/PP.SOM.SomSec
При использовании BI-сервера совместно с сервером безопасности необходимо задать https соединение на всех этапах.
Для создания запроса в консоли OpenSSL введем команду:
openssl req -new -days 1000 -keyout c:\iis\client.key -out c:\iis\client.csr -config openssl.cnf
При выполнении команды будет предложено задать PEM пароль и дополнительную информацию и владельце сертификата.
После введения всех данных будет создан ключ и запрос на сертификат клиента.
Созданный запрос необходимо подписать корневым сертификатом. Откроем консоль OpenSSL и введем команду:
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 команду:
openssl pkcs12 -export -inkey c:\iis\client.key -in c:\iis\client.crt -out c:\iis\client.pfx
При выполнении команды будет получен запрос PEM пароля.
После создания контейнера его необходимо передать на компьютер клиента и импортировать в хранилище сертификатов.
Привязка сертификата к конкретному пользователю производится на вкладке «Общие свойства» в свойствах пользователя:
Выполним команду «Из файла» раскрывающегося меню кнопки «Добавить» и укажем созданный для клиента сертификат.
В результате доступ пользователя к репозиторию будет разрешен только при предъявлении сертификата пользователя.
Перед проверкой работы сертификатов перезагрузим веб-сервер IIS.
Для проверки работы запросов сертификатов проверим доступ к веб-сервису сервера безопасности. В браузере перейдем по адресу:
https://<рабочая станция>/fpSS_App_v9.2x64/axis2/services
При корректной настройке будет показано окно выбора сертификата для аутентификации на сайте.
Если сертификат был указан корректно, будет отображена страница с доступными операциям веб-сервиса.
См. также:
Настройка двухфакторной аутентификации | Пример настройки двухфакторной аутентификации в ОС Linux