Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
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** после чего выполните его, в случае успеха вы получите список методов друго участника, иначе вы получите сообщение об ощибке и её краткое описание. | ||
---- | ---- | ||
Автор Даниил Горбенко | Автор Даниил Горбенко |