Инструменты пользователя

Инструменты сайта


subsystem-config-https-new

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
subsystem-config-https-new [2023/05/08 18:17]
infra
subsystem-config-https-new [2023/08/18 05:35] (текущий)
infra
Строка 1: Строка 1:
-<color #ed1c24>ВНИМАНИЕ!!! ЭТО ТЕСТОВАЯ СТРАНИЦА!</color>+<note warning>Целевой аудиторией данного руководства являются системные администраторы Сервера безопасности Тундук ответственные за установку и сопровождение программного обеспечения X-Road. Документ предназначен для читателей с умеренными знаниями администрирования Linux серверов и компьютерных сетей.</​note>​  
 + 
 +====== ​Настройка HTTPS сертификатов подсистемы ====== 
 + 
 + 
 +При соединении **«информационной системы потребителя услуг <-> Сервер безопасности»** сервер безопасности является сервером,​ а информационная система - клиентом. Клиент и сервер должны доверять сертификатам друг друга, для этого им необходимо обменяться сертификатами. 
 + 
 +===== Создание самоподписанного сертификата информационной системы ===== 
 +<​code>​  
 +openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout subsystemName.key -out subsystemName.crt 
 +</​code>​ 
 +{{ :​opennslsubsystemcert.jpg |}} 
 + 
 +После создания сертификата загрузить его в сервер безопасности. 
 +В меню CLIENTS ⇒ выберите подсистему и нажмите на раздел "​Internal servers"​ 
 + 
 +{{ :​screenshot_from_2023-05-13_19-16-51.png?​nolink |}} 
 + 
 + 
 +Импортируйте сертификаты указав путь к файлу subsystemName.crt и нажмите **OK** 
 + 
 +После загрузки хэш сумма сертификата отобразится в списке. детали сертификата можно просмотреть кликнув на хэш, затем кликнуть **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//​). 
 +<code xml> 
 +<​soapenv:​Envelope xmlns:​soapenv="​http://​schemas.xmlsoap.org/​soap/​envelope/"​ xmlns:​xro="​http://​x-road.eu/​xsd/​xroad.xsd"​ xmlns:​iden="​http://​x-road.eu/​xsd/​identifiers">​ 
 +   <​soapenv:​Header>​ 
 +      <​xro:​protocolVersion>​4.0</​xro:​protocolVersion>​ 
 +      <​xro:​id>​GUID-HERE</​xro:​id>​ 
 +      <​xro:​userId>​SUbsystemCheck</​xro:​userId>​ 
 +      <​xro:​service iden:​objectType="​SERVICE">​ 
 +         <​iden:​xRoadInstance>​central-server</​iden:​xRoadInstance>​ 
 +         <​iden:​memberClass>​GOV</​iden:​memberClass>​ 
 +         <​iden:​memberCode>​70000005</​iden:​memberCode>​ 
 +         <​iden:​subsystemCode>​zags-service</​iden:​subsystemCode>​ 
 +         <​iden:​serviceCode>​listMethods</​iden:​serviceCode>​ 
 +         <​iden:​serviceVersion>​v1</​iden:​serviceVersion>​ 
 +      </​xro:​service>​ 
 +      <​xro:​client iden:​objectType="​SUBSYSTEM">​ 
 +         <​iden:​xRoadInstance>​central-server</​iden:​xRoadInstance>​ 
 +         <​iden:​memberClass>​Укажите свой класс</​iden:​memberClass>​ 
 +         <​iden:​memberCode>​Укажите свой код</​iden:​memberCode>​ 
 +         <​iden:​subsystemCode>​Укажите наименование своей подсистемы</​iden:​subsystemCode>​ 
 +      </​xro:​client>​ 
 +   </​soapenv:​Header>​ 
 +   <​soapenv:​Body>​ 
 +      <​xro:​listMethods/>​ 
 +   </​soapenv:​Body>​ 
 +</​soapenv:​Envelope>​ 
 +</​code>​ 
 + 
 +Теперь перейдите в каталог где создан файл **request.xml** и выполните следующую комманду 
 +<code bash> 
 +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 
 +</code> 
 +В отвеле вы должны получить XML файл содержащий список методов подсистемы учатсника указанного в запросе. 
 + 
 +==== Проверка конфигурации с использованием SoapUI ==== 
 + 
 +Для выполениея запросов чере SoapUI его необходимо предварительно настроить. 
 +Для soapUI сначала необходимо упаковать самоподписанный сертификат в **pfx** или **p12** контейнер. 
 +в директории с ключевой парой выполните следующую комманду. 
 +<code bash> openssl pkcs12 -export -out keypair.pfx -inkey subsystemName.key -in subsystemName.crt ​ </​code>​ 
 +Задайте пароль для ключевой пары. 
 +Затем откройте SoapUI нажмите **ctrl+alt+p** В появившемся окне перейдите в раздер **SSL Settings**, в параметре **KeyStore:​** укажите путь к файлу **keypair.pfx**,​ в **KeyStore Password:** укажите пароль который вы задали при создании контейнера,​ установите отметку **requires client authentication** напротив **Client Authentication:​** 
 +{{ :​soap-ui-ssl.jpg |}} 
 +На этом настройка завершена и можно перейти к выполнению запросов. 
 +Откройте файл {{ :​listmethods.wsdl |}}, затем выберите метод listMethods и сформируйте запрос как показано в примере для **curl** после чего выполните его, в случае успеха вы получите список методов друго участника,​ иначе вы получите сообщение об ощибке и её краткое описание. 
  
 ---- ----
  
 Автор Даниил Горбенко Автор Даниил Горбенко
subsystem-config-https-new.1683569855.txt.gz · Последние изменения: 2023/05/08 18:17 — infra