Форум программистов, компьютерный форум, киберфорум
C#: Веб-сервисы и WCF
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.93/476: Рейтинг темы: голосов - 476, средняя оценка - 4.93
64 / 55 / 1
Регистрация: 01.04.2016
Сообщений: 345
1
.NET 4.x

Интеграция с ГИС ЖКХ и подпись SOAP без Крипто .NET и stunnel

06.04.2017, 22:27. Показов 94222. Ответов 244

Author24 — интернет-сервис помощи студентам
Решил создать отдельную тему, так как в теме Интеграция с ГИС ЖКХ. Подпись SOAP и защита канала по ГОСТ (4) - C# WCF уже можно заблудиться.

Причиной написания данной куклы/тестового приложения стало желание избавиться от зависимости от Крипто .NET.

За прошедший год с момента начала использования Крипто .NET у меня к нему накопился ряд претензий, таких как:
1. Работа только с одним, своим, криптопровайдером
2. Навязчивая загрузка во все приложения, даже туда, где он не нужен
Как следствие, это приводит к невозможности использования ряда приложений, таких как, например, NUnit Framework


Не хочу сказать ничего плохого в адрес разработчиков КриптоКом.
Они и сами признают на своем форуме, что внедрение чужеродных алгоритмов шифрования в операционные системы Windows это очень непростая задача.
Но все-таки в результате Крипто .NET получился, по моему опыту, настолько глючным, что пользоваться им в работе становится весьма обременительным.

Предлагаемая кукла обеспечивает работу с ГИС ЖКХ без настоятельно навязываемых Ланитом продуктов КриптоКом, таких как stunnel и Крипто .NET.
Для работы используются стандартные вызовы CryptoAPI, так что криптопровайдера установить придется,
соответствующего полученному в УЦ ключу, CryptoPro CSP или ViPNet CSP.

Что было сделано:
1. За основу была взята реализация springjazzy (https://github.com/springjazzy/Xades) выложенная с составе примера начального уровня выложенного Anvano. Учтены/приняты во внимание замечания других участников форума
2. Была написана обертка для работы с CryptoAPI (с использованием найденного куска от Microsoft), в ней был выделен интерфейс ICryptoProvider декларирующий минимально необходимый функционал для подписи
3. Реализация springjazzy из пункта 1 была подвергнута переработке в следующих направлениях:
3.1. Был выкинут весь неиспользуемый функционал класса XadesSignedXml для облегчения чтения и понимания, что там вообще происходит
3.2. Последовательным движением в глубину текстов библиотеки Xades и замены рефлексии методов .NET на куски текста Microsoft удалось избавить класс XadesSignedXml от
криптографии .NET. Вызовы криптографии .NET были заменены на вызовы трех методов ICryptoProvider из п.2

Таким образом, сейчас подпись Xades в данном приложении осуществляется следующим образом:

C#
1
2
ICryptoProvider CryptoProvider = GetCryptoProvider(SigningSertificate);
signedXml.ComputeSignature(CryptoProvider.ComputeHash, CryptoProvider.ComputeSignature, CryptoProvider.ReverseSignature);
где:
  • signedXml - экземпляр класса XadesSignedXml из модифицированной библиотеки
  • ComputeHash - функция расчета хэша вида byte[] ComputeHash(byte[] Data)
  • ComputeSignature - функция расчета подписи вида byte[] ComputeSignature(byte[] Data)
  • ReverseSignature - свойство типа bool, показывающее библиотеке, нужно ли переворачивать полученную подпись:8 Выяснилась занятная деталь: Крипто .NET и CryptoPro CSP оба выдают верные подписи (для одного и того же сертификата), но одну из них нужно зеркально перевернуть, чтобы ее принял ГИС ЖКХ. Почему там сделано - не знаю, это наверное можно спросить в КриптоКом

  • Кукла проверена на машине где установлен как Крипто .NET так и CryptoPro CSP
  • После чего Крипто .NET был удален
  • Компьютер был перезагружен для завершения удаления (два раза, так как с первого раза Крипто .NET удаляться не захотел)
  • После этого осталась работоспособной только часть, работающая через CryptoApi

С ключами Инфотекса у меня в настоящее время возможности проверить работоспособность нет, так как тестовый ключ Инфотекса уже не рабочий.

У кого есть возможность проверить, просьба сообщить о результатах.

Из имеющихся в настоящий момент не исправленных глюков - ошибка связанная с некорректным освобождением памяти при выходе при приложения. Подозреваю, что ошибка где-то в обертке CryptoAPI, но где - пока непонятно.


В прилагаемом архиве исходные тексты куклы и релизная сборка приложения.

Отзывы и конструктивная критика принимаются.

С уважением к участникам форума,
hhmm

Дополнение от 18.10.2018:

В данной теме есть и другие решения предложенные участниками, вынесены в шапку для облегчения навигации:

1. gizmo23 предложил свой вариант библиотеки.
В основу был взят тот же проект signature-demo-net. Все ссылки в сообщении.
Первоначальное обсуждение продолжалось до post10628102

2. umatkot предложил утилиту для проверки работоспособности сервера ГИС ЖКХ. Утилита (по словам автора) использует еще более усовершенствованную версию библиотеки подписи.

3. Дополнение на тему альтернативных криптопровайдеров: месяц назад один из клиентов предоставил на опыты реальный, не тестовый ключ, ViPNet CSP выданный настоящим удостоверяющим центром. Попытка прикрутить провайдера ViPNet CSP к ГИС ЖКХ успехом не увенчалась. Несмотря на то, что на машину удалось установить два криптопровайдера одновременно и каждый из них отдельно видел и успешно читал свои ключи, попытка подключиться с ключом ViPNet CSP к ППАК ГИС ЖКХ не удалась. Проблемы возникли на транспортном уровне, такие же какие бывают у Крипто .Net клиент когда обновляется .Net Framework - 'Unable establish secure SSL/TLS channel to api.dom.dosuslugi.ru'. До подписи дело не дошло.
То ли там что-то еще нужно докупать у Инфотекса, то ли ViPNet CSP не может внедриться на транспортном уровне. В общем, у меня не получилось. Потратил один день, после чего эксперименты прекратил.

Дополнение от 24.01.2018:

4. vst377 предложил набор классов реализующих работу в ГИС ЖКХ файловых сервисов.
Вложения
Тип файла: zip GisBusted.zip (4.17 Мб, 634 просмотров)
11
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.04.2017, 22:27
Ответы с готовыми решениями:

.NET 4.x Интеграция с ГИС ЖКХ. Подпись SOAP и защита канала по ГОСТ (2)
Начало темы здесь: https://www.cyberforum.ru/web-services-wcf/thread1615223.html umatkot, Да, к...

Интеграция с ГИС ЖКХ. Подпись SOAP и защита канала по ГОСТ (4)
Предыдущая тема: https://www.cyberforum.ru/web-services-wcf/thread1800721.html Здравствуйте....

Интеграция с ГИС ЖКХ. Подпись SOAP и защита канала по ГОСТ (5)
Предыдущая тема: https://www.cyberforum.ru/web-services-wcf/thread1840159.html И так мы Я и...

Интеграция с ГИС ЖКХ. Подпись SOAP и защита канала по ГОСТ (3)
Предыдущая тема: https://www.cyberforum.ru/web-services-wcf/thread1776736.html Кто нибудь знает...

244
12 / 11 / 1
Регистрация: 18.04.2016
Сообщений: 75
04.04.2019, 14:56 161
Author24 — интернет-сервис помощи студентам
Я починил.
В SignLibrary из Nuget обновил GostCryptography и BouncyCastle.Crypto
Кое что подправил методом тыка и взлетело.
Вложения
Тип файла: rar SignLibrary.rar (2.14 Мб, 89 просмотров)
1
12 / 11 / 1
Регистрация: 18.04.2016
Сообщений: 75
04.04.2019, 14:57 162
Я починил.
В SignLibrary из Nuget обновил GostCryptography и BouncyCastle.Crypto
Кое что подправил методом тыка и взлетело.
0
12 / 11 / 1
Регистрация: 18.04.2016
Сообщений: 75
05.04.2019, 14:12 163
Пример подписанного запроса
Вложения
Тип файла: zip foo.zip (3.5 Кб, 93 просмотров)
0
187 / 100 / 19
Регистрация: 15.09.2011
Сообщений: 801
21.06.2019, 05:32 164
Изменённая, адаптивная либа для GOST 2012 и старого алгоритма. Уже есть - но эта работает 100% без переделок.
Вложения
Тип файла: rar ServiceHelperHost.SignLibrary.rar (143.1 Кб, 149 просмотров)
1
7 / 7 / 0
Регистрация: 21.04.2017
Сообщений: 36
19.07.2019, 08:09 165
Уважаемые коллеги!
Кто может подсказать в чем дело.
Пытаюсь обновить перечень лицевых счетов для индивидуального прибора учета. Использую сервис HouseManagementServiceAsync и его метод importMeteringDeviceData. Однако сервер не хочет принимать запрос"Удаленный сервер возвратил ошибку: (400) Недопустимый запрос."
Сообщение:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?xml version="1.0" encoding="utf-16"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
    <s:Header>
        <Action s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none">urn:importMeteringDeviceData</Action>
        <h:RequestHeader xmlns="http://dom.gosuslugi.ru/schema/integration/base/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:h="http://dom.gosuslugi.ru/schema/integration/base/">
            <Date>2019-07-02T15:56:57.3784794+04:00</Date>
            <MessageGUID>2de57d01-c58d-4dc2-8b88-efa50c10abab</MessageGUID>
            <orgPPAGUID>37d276d6-e854-4c03-9bb7-187c97af3269</orgPPAGUID>
            <IsOperatorSignature>true</IsOperatorSignature>
        </h:RequestHeader>
    </s:Header>
    <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
        <importMeteringDeviceDataRequest Id="signed-data-container" d3p1:version="11.1.0.8" xmlns:d3p1="http://dom.gosuslugi.ru/schema/integration/base/" xmlns="http://dom.gosuslugi.ru/schema/integration/house-management/">
            <FIASHouseGuid>4e6fe615-d8eb-4e2b-82c0-b665f55dd7fb</FIASHouseGuid>
            <MeteringDevice>
                <DeviceDataToUpdate>
                    <MeteringDeviceVersionGUID>8f3224c4-4ff6-4680-8d0c-b665ffce04da</MeteringDeviceVersionGUID>
                    <UpdateAfterDevicesValues>
                        <AccountGUID>6aafac5a-a153-4f2a-a595-ff526e19fc1b</AccountGUID>
                    </UpdateAfterDevicesValues>
                </DeviceDataToUpdate>
            </MeteringDevice>
            <MeteringDevice>
                <DeviceDataToUpdate>
                    <MeteringDeviceVersionGUID>ae5b780b-8ae6-4466-b5b5-8e77373df538</MeteringDeviceVersionGUID>
                    <UpdateAfterDevicesValues>
                        <AccountGUID>6aafac5a-a153-4f2a-a595-ff526e19fc1b</AccountGUID>
                    </UpdateAfterDevicesValues>
                </DeviceDataToUpdate>
            </MeteringDevice>
        </importMeteringDeviceDataRequest>
    </s:Body>
</s:Envelope>
Техподдержка по тихому слила вопрос и перестала отвечать.
Чудо софтина основанная на кукле выдает следующее сообщение:

System.ServiceModel.ProtocolException: Удаленный сервер вернул неожиданный ответ: (400) Bad Request. ---> System.Net.WebException: Удаленный сервер возвратил ошибку: (400) Недопустимый запрос.
в System.Net.HttpWebRequest.GetResponse()
в System.ServiceModel.Channels.HttpChannelFactory`1.HttpRequestChannel.HttpChannel Request.WaitForReply(TimeSpan timeout)
--- Конец трассировки внутреннего стека исключений ---

Server stack trace:
в System.ServiceModel.Channels.HttpChannelUtilities.ValidateRequestReplyResponse(H ttpWebRequest request, HttpWebResponse response, HttpChannelFactory`1 factory, WebException responseException, ChannelBinding channelBinding)
в System.ServiceModel.Channels.HttpChannelFactory`1.HttpRequestChannel.HttpChannel Request.WaitForReply(TimeSpan timeout)
в System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout)
в System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, TimeSpan timeout)
в System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
в System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessag e methodCall, ProxyOperationRuntime operation)
в System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

Exception rethrown at [0]:
в System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
в System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
в GisBustedWsdlWrapper.HouseManagementPortsTypeAsync.importMeteringDeviceData(impo rtMeteringDeviceDataRequest1 request)
в GisBustedWsdlWrapper.HouseManagementPortsTypeAsyncClient.GisBustedWsdlWrapper.Ho useManagementPortsTypeAsync.importMeteringDeviceData(importMeteringDeviceDataReq uest1 request) в D:\GIS\GBv3\WSDL\GisBustedWsdlWrapper.cs:строка 129010
в GisBustedWsdlWrapper.HouseManagementPortsTypeAsyncClient.importMeteringDeviceDat a(RequestHeader RequestHeader, importMeteringDeviceDataRequest importMeteringDeviceDataRequest, AckRequest& AckRequest) в D:\GIS\GBv3\WSDL\GisBustedWsdlWrapper.cs:строка 129018
в GisBusted.Workers.house_managment_async.HouseManagementServiceAsyncWorker.Import MeteringDeviceData(String FIASHouseGuid, importMeteringDeviceDataRequestMeteringDevice[] meteringDevices, String& MessageGUID, Exception& Error) в D:\GIS\GBv3\Workers\house-managment-async\HouseManagementServiceAsyncWorker.cs:строка 159
0
187 / 100 / 19
Регистрация: 15.09.2011
Сообщений: 801
19.07.2019, 08:31 166
anton_hz, Возможно там такой подход - архивирование ПУ старого и создание нового с требуемыми лицевыми.

Добавлено через 7 минут
anton_hz, даже если есть показания, думаю, что ничего страшного не случится, если прибор удалить, добавить новый и накатить все показания. Там, в документации указывается, что нужно все данные передавать, не только AccountGuid - это больше мороки чем тупо новый создать.
Да, так кстати везде по обновлениям - вообще, это косяк ГИС, что требует все данные в целостности, а не обновляет только одно поле - мы с этим "супералгоритмом обновления" ещё пару лет назад познакомились и уже тогда их прокляли) В тот конструктор, что вы обновить пытаетесь, можно играть очень долго, чтобы убедиться, какие поля требуются, а какие - нет.
0
7 / 7 / 0
Регистрация: 21.04.2017
Сообщений: 36
19.07.2019, 09:04 167
По документации на тип "MeteringDeviceToUpdateAfterDevicesValuesType" вроде все сходится там почте все поля
в количестве 0...1. Теоретически должно все работать. И тех. поддержка написала
"Для продолжения работы по Вашему обращению просим уточнить актуальность проблемы на текущий момент.
Если проблема сохраняется, то просьба приложить к ответному письму все запросы и ответы (изначальный запрос, AckRequest, getStateRequest, ответ с ошибкой), а также заголовки и и URL сервиса данных запросов и адреса отправления запросов."
Это они что-то типа сделали, проверьте. Но кода я им завинтил что запрос вообще не принимается системой, и что речи не может быть про AckRequest, getStateRequest. Они слились.
В последнее время у всех проблемы с тех. поддержкой или я один такой?
0
187 / 100 / 19
Регистрация: 15.09.2011
Сообщений: 801
19.07.2019, 10:33 168
anton_hz, им надо звонить и уточнять статус обращения мотивируя их тем, что сейчас за спиной у вас стоит голодный и злой директор - что-то в этом роде - долбить их до бесконечности, пока не решат проблему и не помогут. Да, я видел по полям, возможно, так и есть, но если проходит один запрос (проверьте тоже самое, только архивируйте тестовый счётчик на ППАК и также можно проверить, как реагирует более продвинутый СИТ 2) - они сначала на СИТ 2 всё обновляют, потом на ППАК и СИТ 1
0
7 / 7 / 0
Регистрация: 21.04.2017
Сообщений: 36
24.07.2019, 13:16 169
Проблема решилась. Отказ в передаче был из-за отсутствия TransportGUID. Ошибка детская.
А обновление действительно отработало как нужно. Обновился только перечень лицевого счета. Всем спасибо за помощь.
0
4 / 4 / 0
Регистрация: 21.04.2015
Сообщений: 45
12.10.2019, 07:26 170
Всем привет. Кто нибудь GisBusted модифицировал под ГОСТ 2012?
0
12 / 11 / 1
Регистрация: 18.04.2016
Сообщений: 75
21.10.2019, 08:47 171
Хм... ППАК
Перестала работать подпись...
System.ServiceModel.CommunicationException: Ошибка при отправке запроса HTTP к https://api.dom.gosuslugi.ru/e... ementAsync. Возможно, это вызвано тем, что сертификат сервера не сконфигурирован с HTTP.SYS для случая HTTPS. Это может быть также вызвано несоответствием привязки безопасности между клиентом и сервером. ---> System.Net.WebException: Базовое соединение закрыто: Непредвиденная ошибка при передаче. ---> System.IO.IOException: Аутентификация не пройдена из-за закрытия транспортного потока удаленной стороной.

Они там чтото опять сломали или мои лыжи не едут?
0
64 / 55 / 1
Регистрация: 01.04.2016
Сообщений: 345
21.10.2019, 19:42  [ТС] 172
Наверное новых корневых и промежуточных сертификатов не хватает, они же недавно их выкладывали в разделе регламенты и инструкции
1
187 / 100 / 19
Регистрация: 15.09.2011
Сообщений: 801
22.10.2019, 03:16 173
foxwizard, Это не в процессе подписи, если соединяетесь без туннеля, то вероятно, не происходит элементарное рукопожатие с сервисом. Была такая проблема - я поставил такие настройки соединений
C#
1
2
3
4
5
6
ServicePointManager.DefaultConnectionLimit = 150;
[B]            ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Ssl3;[/B]
[B]            ServicePointManager.CheckCertificateRevocationList = false;[/B]
            ServicePointManager.UseNagleAlgorithm = true;
            ServicePointManager.Expect100Continue = false;
[B]            ServicePointManager.ServerCertificateValidationCallback = (sender, certificate2, chain, sslPolicyErrors) => true;[/B]
также проверьте, под какой учёткой запускается программа - вероятно, что вышли обновления на винду и что-то всё-таки крякнуло у вас. И проверьте, также версию hhmm
1
4 / 4 / 0
Регистрация: 21.04.2015
Сообщений: 45
22.10.2019, 05:00 174
кто нибудь может подсказать, что в этом запросе не так? делаю поддержку ГОСТ 2012. запрос на ГИС отправляется, но getState возвращает: Ошибка формата подписи запроса.

Запрос:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<?xml version="1.0" encoding="utf-16"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
    <s:Header>
        <Action s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none">urn:exportNsiList</Action>
        <h:ISRequestHeader xmlns:h="http://dom.gosuslugi.ru/schema/integration/base/" xmlns="http://dom.gosuslugi.ru/schema/integration/base/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <Date>2019-10-21T17:19:47.3544257+10:00</Date>
            <MessageGUID>5442de73-b2cd-4f2c-b51a-7c3e1631fbf9</MessageGUID>
        </h:ISRequestHeader>
    </s:Header>
    <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
        <exportNsiListRequest Id="signed-data-container" p5:version="10.0.1.2" xmlns="http://dom.gosuslugi.ru/schema/integration/nsi-common/" xmlns:p5="http://dom.gosuslugi.ru/schema/integration/base/">
            <ds:Signature Id="xmldsig-9f4e54d9-acc4-4e99-bb35-748696d557a6" xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
                <ds:SignedInfo>
                    <ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"></ds:CanonicalizationMethod>
                    <ds:SignatureMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256"></ds:SignatureMethod>
                    <ds:Reference Id="xmldsig-9f4e54d9-acc4-4e99-bb35-748696d557a6-ref0" URI="#signed-data-container">
                        <ds:Transforms>
                            <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"></ds:Transform>
                            <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></ds:Transform>
                        </ds:Transforms>
                        <ds:DigestMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256"></ds:DigestMethod>
                        <ds:DigestValue>T8e3wbquJwZ69MBkZLI13Gutk3xjDs+Hf7SMZKqavg0A</ds:DigestValue>
                    </ds:Reference>
                    <ds:Reference URI="#xmldsig-9f4e54d9-acc4-4e99-bb35-748696d557a6-signedprops" Type="http://uri.etsi.org/01903#SignedProperties">
                        <ds:DigestMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256"></ds:DigestMethod>
                        <ds:DigestValue>KN2fwxuxvsSUFUWp4AAF6yBWf09QhfELD0on/OkO4j8A</ds:DigestValue>
                    </ds:Reference>
                </ds:SignedInfo>
                <ds:SignatureValue Id="xmldsig-9f4e54d9-acc4-4e99-bb35-748696d557a6-sigvalue">5HzGMXyO7D9UTjpRkNdhDkqyFJgM7+VPqUQ0UNxw/Z+DCbEPRsgigxIwcycUMu+LCp60ZM9oeil0X2QPNK4jjg==</ds:SignatureValue>
                <ds:KeyInfo>
                    <ds:X509Data>
                        <ds:X509Certificate>MIIJnzCCCUygAwIBAgIQHTftE....w==</ds:X509Certificate>
                    </ds:X509Data>
                </ds:KeyInfo>
                <ds:Object>
                    <xades:QualifyingProperties Target="#xmldsig-9f4e54d9-acc4-4e99-bb35-748696d557a6" xmlns:xades="http://uri.etsi.org/01903/v1.3.2#" xmlns:xades141="http://uri.etsi.org/01903/v1.4.1#">
                        <xades:SignedProperties Id="xmldsig-9f4e54d9-acc4-4e99-bb35-748696d557a6-signedprops">
                            <xades:SignedSignatureProperties>
                                <xades:SigningTime>2019-10-21T17:19:48.659+10:00</xades:SigningTime>
                                <xades:SigningCertificate>
                                    <xades:Cert>
                                        <xades:CertDigest>
                                            <ds:DigestMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256"></ds:DigestMethod>
                                            <ds:DigestValue>GKjx1NqYm/zTE8IGyWmh7FOe61Q3V+oVcuxwirF2vD0A</ds:DigestValue>
                                        </xades:CertDigest>
                                        <xades:IssuerSerial>
                                            <ds:X509IssuerName>1.2.840.113549.1.9.1=uc@mascom-it.ru, 1.2.643.100.1=1152724009184, 1.2.643.3.131.1.1=002722050371, C=RU, ST=27 Хабаровский край, L=Хабаровск, STREET=Яшина 40, 2.5.4.11=Удостоверяющий центр МАСКОМ Восток, O=ООО \"МАСКОМ-ТЕХЛАЙН\", CN=ООО \"МАСКОМ-ТЕХЛАЙН\"</ds:X509IssuerName>
                                            <ds:X509SerialNumber>38837996651263666529579124584979931967</ds:X509SerialNumber>
                                        </xades:IssuerSerial>
                                    </xades:Cert>
                                </xades:SigningCertificate>
                            </xades:SignedSignatureProperties>
                        </xades:SignedProperties>
                    </xades:QualifyingProperties>
                </ds:Object>
            </ds:Signature>
            <ListGroup xmlns="http://dom.gosuslugi.ru/schema/integration/nsi-base/">NSI</ListGroup>
        </exportNsiListRequest>
    </s:Body>
</s:Envelope>
Ответ:
XML
1
2
<ns4:ErrorCode>AUT011005</ns4:ErrorCode>
<ns4:Description>Ошибка формата подписи запроса</ns4:Description>
0
187 / 100 / 19
Регистрация: 15.09.2011
Сообщений: 801
22.10.2019, 05:36 175
Цитата Сообщение от daniel_tlk Посмотреть сообщение
<ds:X509Certificate>MIIJnzCCCUygAwIBAgIQHTftE....w==</ds:X509Certificate>
это вручную сделали?
0
4 / 4 / 0
Регистрация: 21.04.2015
Сообщений: 45
22.10.2019, 06:06 176
Цитата Сообщение от Umatkot_Primtep Посмотреть сообщение
это вручную сделали?
да.
0
12 / 11 / 1
Регистрация: 18.04.2016
Сообщений: 75
22.10.2019, 06:33 177
Цитата Сообщение от hhmm Посмотреть сообщение
Наверное новых корневых и промежуточных сертификатов не хватает, они же недавно их выкладывали в разделе регламенты и инструкции
Их просто добавить в хранилище?
0
187 / 100 / 19
Регистрация: 15.09.2011
Сообщений: 801
22.10.2019, 08:34 178
daniel_tlk, по нодам и идентификаторам - всё норм. Попробуйте моей либой протестить?
Вложения
Тип файла: rar gst2.rar (114.6 Кб, 168 просмотров)
0
187 / 100 / 19
Регистрация: 15.09.2011
Сообщений: 801
22.10.2019, 08:35 179
foxwizard, https://api.dom.gosuslugi.ru должен быть доверенным в explorer - для этого надо установить все цепочки в хранилище.
Также, желательно тоже, на всякий случай, свой сертификат подтвердить в системе.
У меня ещё такая ошибка была, когда я тестил на своём локальном компе и поставил использование IIS64 разряда, забыл, что поставил и парился. Потом, случайно набрёл, поставил 32 разряда и рукопожатие прошло.
0
4 / 4 / 0
Регистрация: 21.04.2015
Сообщений: 45
22.10.2019, 09:09 180
В общем, все магическим способом заработало. Но, возможно, это не магия, а повлияла установка сертификатов ГИС.
0
22.10.2019, 09:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.10.2019, 09:09
Помогаю со студенческими работами здесь

Интеграция с ГИС ЖКХ. Подпись SOAP и защита канала по ГОСТ
Здравствуйте! Передо мной стоит задача интеграции с системой ГИС ЖКХ...

Осуществить подпись SOAP, по стандартам ГИС ГМП, принятого через TCP сокет
Здравствуйте. Требуется осуществить подпись SOAP, по стандартам ГИС ГМП, принятого через тсп сокет....

Ошибки интеграции ГИС ЖКХ
Я много тут читал форум по интеграции ГИС. На старте, впрочем, как и в последствии возникает много...

Soap, Java, Гис ЖКХ
Добрый день! Имеет ли кто опыт работы с soap в Java? Поставлена задача наладить работу с ГИС ЖКХ,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
180
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru