|
1 / 1 / 0
Регистрация: 16.12.2015
Сообщений: 1
|
||||||||||||||||
.NET 4.x Интеграция с ГИС ЖКХ. Подпись SOAP и защита канала по ГОСТ16.12.2015, 11:46. Показов 175008. Ответов 999
Здравствуйте!
Передо мной стоит задача интеграции с системой ГИС ЖКХ (https://dom.gosuslugi.ru/) программой, написанной на языке C#, .NET Framework 4 Данный сервис предоставляет SOAP веб-сервисы для приема и передачи информации, соединение защищается сертификатом по алгоритму ГОСТ. Каждый элемент внутри тела SOAP сообщения подписывается сигнатурой XAdES-BES. На данный момент для осуществления защищённого соединения я использую «МагПро КриптоТуннель» (stunnel) со следующими настройками: Конфигурация stunnel (stunnel.conf)
verify=2
client=yes CAFile=CA-test2-cryptopro.pem engine=gost usb_eject=yes sslVersion=TLSv1 taskbar=yes DEBUG=7 [pseudo-https] protocol = http accept = 127.0.0.1:8754 connect = 54.76.42.99:60045 ciphers = GOST2001-GOST89-GOST89 TIMEOUTclose = 0 cert=test.pem key=test.key Для обмена SOAP сообщениями я использую стандартный сервис WCF с прокси-классами, сгенерированные из WSDL файлов. Для подписи SOAP сообщений сигнатурой использую ниже представленный класс: C#. Класс для подписи исходного SOAP сообщения
В результате после подписи элемента "exportNsiItemRequest" SOAP-сообщение выглядит следующим образом: XML. Подписанное SOAP сообщение
Проблема заключается в том, что ответ от сервера приходит следующий: ru.lanit.security.crypto.CryptoException : ЭП не прошла проверку: Invalid XML Signature Текст ответного сообщения следующий: XML. SOAP-ответ от сервера
Подскажите пожалуйста: 1) Как сделать валидную подпись, которая будет проходить проверку сервером, используя WCF ? 2) Как с помощью средств CryptoPro.NET отказаться от использования «МагПро КриптоТуннель» ?
1
|
||||||||||||||||
| 16.12.2015, 11:46 | |
|
Ответы с готовыми решениями:
999
Интеграция с ГИС ЖКХ. Подпись SOAP и защита канала по ГОСТ (3) Интеграция с ГИС ЖКХ. Подпись SOAP и защита канала по ГОСТ (5) Интеграция с ГИС ЖКХ. Подпись SOAP и защита канала по ГОСТ (4) |
|
16 / 15 / 1
Регистрация: 18.04.2016
Сообщений: 82
|
||||||
| 22.04.2016, 13:01 | ||||||
|
slavakaryakin, Носом не ткнете? Ошибка при вызове
proxy.exportDataProvider(header, req, out res);
0
|
||||||
|
6 / 5 / 0
Регистрация: 10.03.2015
Сообщений: 58
|
|
| 22.04.2016, 13:03 | |
|
У нас интеграционная шина от SAP.
0
|
|
|
0 / 0 / 0
Регистрация: 29.03.2016
Сообщений: 3
|
|
| 22.04.2016, 13:15 | |
|
foxwizard
исключение у вас возникает, по-видимому, при вызове .exportDataProvider(inValue); нужно глубже лезть в либу сервер возвращает ошибку 400 в хедере и там сразу исключение генерится. А нужно выходной поток из ответа прочитать, там есть информация. так то, по тексту, надо в retVal смотреть, но у вас он, скорее всего, не заполняется
0
|
|
|
1 / 1 / 1
Регистрация: 23.03.2016
Сообщений: 20
|
||
| 22.04.2016, 13:21 | ||
|
0
|
||
|
67 / 58 / 1
Регистрация: 01.04.2016
Сообщений: 346
|
||||||||
| 22.04.2016, 21:29 | ||||||||
Не по теме: поправка, нашел: Альбом ТФФ v.8.7.0.4.docx размером 156 Kb, раздел 2.1.10 Сервис обмена сведениями об оплате и квитировании (hcs-payments)
0
|
||||||||
|
1 / 1 / 1
Регистрация: 12.03.2015
Сообщений: 12
|
||
| 25.04.2016, 00:16 | ||
|
"SecurityNegotiationException:.... Could not establish trust relationship for the SSL/TLS secure channel. ... AutentificationException: The remote sertificate is invalid according to the validation procedure."
0
|
||
|
187 / 100 / 19
Регистрация: 15.09.2011
Сообщений: 801
|
||
| 25.04.2016, 02:12 | ||
|
0
|
||
|
1 / 1 / 0
Регистрация: 02.04.2016
Сообщений: 2
|
|||
| 25.04.2016, 04:39 | |||
|
Мне достаточно было отправить свой запрос, получить идентификатор своего сообщения, а потом через некоторое время получить свой результат с помощью getState()
0
|
|||
|
187 / 100 / 19
Регистрация: 15.09.2011
Сообщений: 801
|
||
| 25.04.2016, 10:43 | ||
|
то мне выплёвывает Exception in thread "main" java.lang.UnsatisfiedLinkError: no djcp20 in java.library.path можешь у себя глянуть, она есть у тебя в библиотеках JRE или JDK? Добавлено через 2 часа 37 минут А, всё, разобрался с signature-demo - нужно было просто посносить с системы все java и установить последнюю. Я вот что заметил - если я подписываю простой запрос xml (exportDataProvider) просто через signature-demo - то потом проверка проходит, а если проверяю подпись с самого стенда, то там сначала вывалился сертификат корневой - установил, и проверка ихних подписей всё равно не проходит!!! У них неправлильно подписывает что-ли? Кто-нибудь проверял ответы от ГИС ЖКХ (тестового СИТ)?
0
|
||
|
67 / 58 / 1
Регистрация: 01.04.2016
Сообщений: 346
|
|||||||
| 25.04.2016, 15:52 | |||||||
|
Т.е. первым шагом я написал маленький bat файл export.bat для генерации прокси класса:
Из второго файла я выцепляю необходимые конечные точки и биндинги и скармливаю их экземплярам классов из первого файла. Как там внутри микрософт создает сообщения я пока не заглядывал.
0
|
|||||||
|
1 / 1 / 0
Регистрация: 02.04.2016
Сообщений: 2
|
||||||||
| 25.04.2016, 16:56 | ||||||||
1
|
||||||||
|
1 / 1 / 1
Регистрация: 12.03.2015
Сообщений: 12
|
||
| 25.04.2016, 22:29 | ||
результат 2 сертификата: sit2.amazon и "Тестовый УЦ". И всё заработало. Спасибо за помощь.Обратите внимание - оба сертификата в Trusted Root CA, см. вложение. 2. Получаю при отправке из GISGKHTest (любая отправка "Получить поставщика данных" и др.) "System.ServiceModel.FaultException: FMT001300: Некорректный XML". Подскажите, кто сталкивался, куда копать?
0
|
||
|
187 / 100 / 19
Регистрация: 15.09.2011
Сообщений: 801
|
||||||||||||
| 26.04.2016, 00:56 | ||||||||||||
|
Вот корректный (из SOAPUI): Посылать нужно на Криптотуннель: http://127.0.0.1:8080/ext-bus-... stryCommon Студия: https://54.76.42.99:60045/ext-... stryCommon Без подписи:
перед подписью нужно обязательно установить КриптоПро последней версии и Trusted Java 2.0. Если не будет работать - вот инструкция https://github.com/Good-Samaritan/signature-demo
0
|
||||||||||||
|
187 / 100 / 19
Регистрация: 15.09.2011
Сообщений: 801
|
|
| 26.04.2016, 01:12 | |
|
Народ, да, батник - это по мужски)) И проект ещё в консольке, чтобы не отвлекаться на посторонние задачи.
0
|
|
|
1 / 1 / 1
Регистрация: 12.03.2015
Сообщений: 12
|
|||
| 26.04.2016, 16:42 | |||
![]() Брал отсюда:
PS:Спасибо за информацию и примеры, буду разбираться!
0
|
|||
|
16 / 15 / 1
Регистрация: 18.04.2016
Сообщений: 82
|
|||||||||||
| 27.04.2016, 06:26 | |||||||||||
|
Из примера GISGKH.zip
Справочник приходит нормально.
"Нет объектов для экспорта." ErrorCode "INT002012"
0
|
|||||||||||
|
13 / 13 / 0
Регистрация: 25.01.2016
Сообщений: 38
|
||
| 27.04.2016, 07:50 | ||
|
Во вложении обновленный тест. В нем всего один метод exportDataProvider. Нужно только в app.config изменить отпечаток сертификата на свой.
1
|
||
|
0 / 0 / 0
Регистрация: 26.04.2016
Сообщений: 2
|
|
| 27.04.2016, 10:05 | |
|
Добрый день, Araney! Смотрю Ваш тестовый проект сейчас, выскакивает ошибка при попытке получить поставщика данных (скриншот приложил). Можете объяснить как задается в конфиге адрес proxyaddress="http://192.168.130.233:3128"? почему именно такой адрес? нужно какой-то прокси-сервер поднимать или что? погуглил, но так и не понял что нужно сделать
0
|
|
|
0 / 0 / 0
Регистрация: 26.04.2016
Сообщений: 2
|
||
| 27.04.2016, 11:29 | ||
|
0
|
||
|
17 / 14 / 0
Регистрация: 22.04.2016
Сообщений: 287
|
||
| 27.04.2016, 11:51 | ||
|
cert=..\crypto\SE_3.pem - тестового сертификата(согласно ману) key=..\crypto\SE_3.key - тестового сертификата(согласно ману) cert_sign=..\crypto\client.crt - а это? key_sign=..\crypto\client.key - это? sign_only_new=no sign_inputs=ID797C1C735EEB4926925375E1D6 907834 - вот это sign_files=IDCBB806E365FB4FBA9490AB20303 971F4 - и это откуда? Отпечаток сертификата? но какого? Заранее благодарю!
0
|
||
| 27.04.2016, 11:51 | |
|
.NET 4.x Интеграция с ГИС ЖКХ. Подпись SOAP и защита канала по ГОСТ (2) Интеграция с ГИС ЖКХ и подпись SOAP без Крипто .NET и stunnel Soap, Java, Гис ЖКХ
Интеграция с ГИС ЖКХ (ГЖ). 400 Bad request Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства.
Жизнь действительно предъявляет каждому. . .
|
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
|
Лето уходит
kumehtar 17.08.2026
|
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
|
|
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины".
За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html
Задача: . . .
|
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber.
Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
|