====== Настройка HTTPS сертификатов подсистемы ====== При соединении **«информационной системы потребителя услуг <-> Сервер безопасности»** сервер безопасности является сервером, а информационная система - клиентом. Клиент и сервер должны доверять сертификатам друг друга, для этого им необходимо обменяться сертификатами. ===== Создание самоподписанного сертификата информационной системы ===== openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout subsystemName.key -out subsystemName.crt {{ :opennslsubsystemcert.jpg |}} После создания сертификата загрузить его в сервер безопасности. В меню MANAGEMENT ⇒ Security Server Clients выберите подсистему и нажмите иконку {{:fa-cloud.jpg|}} "internal servers" {{ :internal-servers-how-to-open.jpg |}} В появившемся диалоговом окне нажмите в секции **CONNECTION TYPE FOR SERVERS IN SERVICE CONSUMER ROLE** выберите **HTTPS** затем в секции **INTERNAL TLS CERTIFICATES** нажмите **ADD** {{ :add-subsystem-tls-cert.jpg |}} укажите путь к файлу subsystemName.crt и нажмите **OK** {{ :browse-subsystem-tls-cert.jpg |}} После загрузки хэш сумма сертификата отобразится в списке. детали сертификата можно просмотреть кликнув на хэш, затем кликнуть **DETAILS** далее экспортируйте открытый ключ сервера безопасности. В секции **SECURITY SERVER CERTIFICATE** нажмите **EXPORT**. После нажатия загрузится архив certs.tar.gz содержащий внутренний сертификат сервера безопасности в формате **cer** и **pem**. На это настройка подсистемы завершена. Информационная система клиент должно отправлять запросы к серверу безопасности с использованием tls аутентификации с использование данных сертификатов (subsystemName.crt, subsystemName.key и certs.tar.gz). ==== Проверка конфигурации с использованием CURL ==== для проверки конфигурации можно воспользоваться утилитой [[https://ru.wikipedia.org/wiki/CURL|cURL]] Вызвав один из метасервисов. для этого создайте файл с именем request.xml и поместите в него файл со следующим предварительно отредактировав его (//необходимо указать свои идентифкаторы в разделе SUBSYSTEM//). 4.0 GUID-HERE SUbsystemCheck central-server GOV 70000005 zags-service listMethods v1 central-server Укажите свой класс Укажите свой код Укажите наименование своей подсистемы Теперь перейдите в каталог где создан файл **request.xml** и выполните следующую комманду curl -k -v --header 'Content-Type: text/xml;charset=UTF-8' --data @"./request.xml" https://Security-server --cert /path/to/subsystemName.crt --key /path/to/subsystemName.key В отвеле вы должны получить XML файл содержащий список методов подсистемы учатсника указанного в запросе. ==== Проверка конфигурации с использованием SoapUI ==== Для выполениея запросов чере SoapUI его необходимо предварительно настроить. Для soapUI сначала необходимо упаковать самоподписанный сертификат в **pfx** или **p12** контейнер. в директории с ключевой парой выполните следующую комманду. openssl pkcs12 -export -out keypair.pfx -inkey subsystemName.key -in subsystemName.crt Задайте пароль для ключевой пары. Затем откройте SoapUI нажмите **ctrl+alt+p** В появившемся окне перейдите в раздер **SSL Settings**, в параметре **KeyStore:** укажите путь к файлу **keypair.pfx**, в **KeyStore Password:** укажите пароль который вы задали при создании контейнера, установите отметку **requires client authentication** напротив **Client Authentication:** {{ :soap-ui-ssl.jpg |}} На этом настройка завершена и можно перейти к выполнению запросов. Откройте файл {{ :listmethods.wsdl |}}, затем выберите метод listMethods и сформируйте запрос как показано в примере для **curl** после чего выполните его, в случае успеха вы получите список методов друго участника, иначе вы получите сообщение об ощибке и её краткое описание. ---- Автор С.Бутенко