Форум программистов, компьютерный форум, киберфорум
C#: Веб-сервисы, WCF
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.61/847: Рейтинг темы: голосов - 847, средняя оценка - 4.61
1 / 1 / 0
Регистрация: 16.12.2015
Сообщений: 1
.NET 4.x

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

16.12.2015, 11:46. Показов 175167. Ответов 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 сообщения
C#
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
class ServiceClientBehavior : IEndpointBehavior, IClientMessageInspector
{
    public object BeforeSendRequest(ref Message request, IClientChannel channel)
    {
        XmlDocument doc = new XmlDocument();
        MemoryStream ms = new MemoryStream();
        XmlWriter writer = XmlWriter.Create(ms);
        request.WriteMessage(writer);
        writer.Flush();
        ms.Position = 0;
        doc.Load(ms);
        
        SignXml(doc);
        
        ms.SetLength(0);
        writer = XmlWriter.Create(ms);
        doc.WriteTo(writer);
        writer.Flush();
        ms.Position = 0;
        XmlReader reader = XmlReader.Create(ms);
        request = Message.CreateMessage(reader, int.MaxValue, request.Version);
 
        return null;
    }
    
    void SignXml(XmlDocument doc)
    {
        doc.PreserveWhitespace = true;
 
        // Получение элемента из тела сообщения
        var requestNode = doc.DocumentElement.ChildNodes[1].ChildNodes[0];
        var signRequestNode = SignRequest(requestNode);
 
        var body = requestNode.ParentNode;
        body.RemoveChild(requestNode);
        body.AppendChild(signRequestNode);
    }
    XmlNode SignRequest(XmlNode reqNode)
    {
        XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.PreserveWhitespace = true;
        xmlDoc.AppendChild(xmlDoc.ImportNode(reqNode, true));
 
        var signedXml = new SignedXML(xmlDoc);
        signedXml.SigningKey = certificate.PrivateKey;
 
        KeyInfo keyInfo = new KeyInfo();
        keyInfo.AddClause(new KeyInfoX509Data(certificate));
        signedXml.KeyInfo = keyInfo;
 
        signedXml.Signature.Id = "SignatureId";
 
        #region Создание DataObject
        {
            XmlElement SignaturePropertiesRoot;
            XmlElement QualifyingPropertiesRoot;
            string xadesURI = "http://uri.etsi.org/01903/v1.3.2#";
            string dsURI = "http://www.w3.org/2000/09/xmldsig#";
 
            QualifyingPropertiesRoot = xmlDoc.CreateElement("xades", "QualifyingProperties", xadesURI);
            QualifyingPropertiesRoot.SetAttribute("Target", "#SignatureId");
 
            SignaturePropertiesRoot = xmlDoc.CreateElement("xades", "SignedProperties", xadesURI);
            SignaturePropertiesRoot.SetAttribute("Id", "SignedPropertiesId");
 
            XmlElement SignedSignatureProperties = xmlDoc.CreateElement("xades", "SignedSignatureProperties", xadesURI);
 
            XmlElement timestamp = xmlDoc.CreateElement("xades", "SigningTime", xadesURI);
            timestamp.InnerText = XmlConvert.ToString(DateTimeOffset.Now);
            SignedSignatureProperties.AppendChild(timestamp);
 
            XmlElement SigningCertificate = xmlDoc.CreateElement("xades", "SigningCertificate", xadesURI);
            XmlElement Cert = xmlDoc.CreateElement("xades", "Cert", xadesURI);
            XmlElement CertDigest = xmlDoc.CreateElement("xades", "CertDigest", xadesURI);
 
            XmlElement DigestMethod = xmlDoc.CreateElement("ds", "DigestMethod", dsURI); DigestMethod.SetAttribute("Algorithm", "http://www.w3.org/2001/04/xmldsig-more#gostr3411");
            XmlElement DigestValue = xmlDoc.CreateElement("ds", "DigestValue", dsURI); DigestValue.InnerText = ComputeGostHash(this.ClientCertificate.RawData);
            CertDigest.AppendChild(DigestMethod);
            CertDigest.AppendChild(DigestValue);
            Cert.AppendChild(CertDigest);
 
            XmlElement IssuerSerial = xmlDoc.CreateElement("xades", "IssuerSerial", xadesURI);
            XmlElement X509IssuerName = xmlDoc.CreateElement("ds", "X509IssuerName", dsURI); X509IssuerName.InnerText = GetIssuerName(certificate);
            XmlElement X509SerialNumber = xmlDoc.CreateElement("ds", "X509SerialNumber", dsURI); X509SerialNumber.InnerText = GetSerialNumber(certificate);
            IssuerSerial.AppendChild(X509IssuerName);
            IssuerSerial.AppendChild(X509SerialNumber);
            Cert.AppendChild(IssuerSerial);
 
            SigningCertificate.AppendChild(Cert);
            SignedSignatureProperties.AppendChild(SigningCertificate);
 
            SignaturePropertiesRoot.AppendChild(SignedSignatureProperties);
            QualifyingPropertiesRoot.AppendChild(SignaturePropertiesRoot);
            DataObject dataObject = new DataObject
            {
                Data = QualifyingPropertiesRoot.SelectNodes("."),
            };
            signedXml.AddObject(dataObject);
        }
        #endregion
 
        signedXml.SignedInfo.SignatureMethod = "http://www.w3.org/2001/04/xmldsig-more#gostr34102001-gostr3411";
        signedXml.SignedInfo.CanonicalizationMethod = "http://www.w3.org/TR/2001/REC-xml-c14n-20010315";
 
        var reference = new Reference();
        reference.Uri = "#RequestId";
        reference.DigestMethod = "http://www.w3.org/2001/04/xmldsig-more#gostr3411";
        reference.AddTransform(new XmlDsigEnvelopedSignatureTransform());
        reference.AddTransform(new XmlDsigExcC14NTransform());
        signedXml.AddReference(reference);
 
        reference = new Reference();
        reference.Uri = "#SignedPropertiesId";
        reference.DigestMethod = "http://www.w3.org/2001/04/xmldsig-more#gostr3411";
        reference.Type = "http://uri.etsi.org/01903#SignedProperties";
        reference.AddTransform(new XmlDsigEnvelopedSignatureTransform());
        reference.AddTransform(new XmlDsigExcC14NTransform());
        signedXml.AddReference(reference);
 
        signedXml.ComputeSignature();
 
        XmlElement signatureNode = signedXml.GetXml();
        xmlDoc.DocumentElement.PrependChild(xmlDoc.ImportNode(signatureNode, true));
 
        if (!VerifyXml(xmlDoc))
            throw new Exception("Подпись не проходит проверку.");
        return reqNode.OwnerDocument.ImportNode(xmlDoc.DocumentElement, true);
    }
}

В результате после подписи элемента "exportNsiItemRequest" SOAP-сообщение выглядит следующим образом:
XML. Подписанное SOAP сообщение
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
61
62
63
64
65
<?xml version="1.0" encoding="utf-8"?>
<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:exportNsiItem</Action>
        <h:RequestHeader xmlns="http://dom.gosuslugi.ru/schema/integration/7.1.0.2/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:h="http://dom.gosuslugi.ru/schema/integration/7.1.0.2/">
            <Date>2015-12-16T16:12:47.9885439+10:00</Date>
            <MessageGUID>c7a1d946-9fcf-4ebc-9c08-20ebe81179cf</MessageGUID>
            <SenderID>387142bd-4ff7-4d15-ab09-18b3d99fd9bd</SenderID>
        </h:RequestHeader>
    </s:Header>
    <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
        <exportNsiItemRequest Id="RequestId" xmlns="http://dom.gosuslugi.ru/schema/integration/7.1.0.2/nsi/">
            <Signature Id="SignatureId" xmlns="http://www.w3.org/2000/09/xmldsig#">
                <SignedInfo>
                    <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
                    <SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr34102001-gostr3411" />
                    <Reference URI="#RequestId">
                        <Transforms>
                            <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
                            <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
                        </Transforms>
                        <DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr3411" />
                        <DigestValue>fpTlCLCz9/78q4Zpng9eAiCZuaHP51fCXfllN2TeFPw=</DigestValue>
                    </Reference>
                    <Reference URI="#SignedPropertiesId" Type="http://uri.etsi.org/01903#SignedProperties">
                        <Transforms>
                            <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
                            <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
                        </Transforms>
                        <DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr3411" />
                        <DigestValue>9sBDvpcyxJLVxibQGy280Rz/MlcESescb6k6MEGKreQ=</DigestValue>
                    </Reference>
                </SignedInfo>
                <SignatureValue>...</SignatureValue>
                <KeyInfo>
                    <X509Data>
                        <X509Certificate>...</X509Certificate>
                    </X509Data>
                </KeyInfo>
                <Object>
                    <xades:QualifyingProperties Target="#SignatureId" xmlns:xades="http://uri.etsi.org/01903/v1.3.2#">
                        <xades:SignedProperties Id="SignedPropertiesId">
                            <xades:SignedSignatureProperties>
                                <xades:SigningTime>2015-12-16T16:13:13.4750017+10:00</xades:SigningTime>
                                <xades:SigningCertificate>
                                    <xades:Cert>
                                        <xades:CertDigest>
                                            <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr3411" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" />
                                            <ds:DigestValue xmlns:ds="http://www.w3.org/2000/09/xmldsig#">B2/4UjEeZwUG0c+mlEfnAZIy8mlbGpkOp4L+jPkgcVY=</ds:DigestValue>
                                        </xades:CertDigest>
                                        <xades:IssuerSerial>
                                            <ds:X509IssuerName xmlns:ds="http://www.w3.org/2000/09/xmldsig#">cn=CRYPTO-PRO Test Center 2,o=CRYPTO-PRO LLC,l=Moscow,c=RU,1.2.840.113549.1.9.1=support@cryptopro.ru</ds:X509IssuerName>
                                            <ds:X509SerialNumber xmlns:ds="http://www.w3.org/2000/09/xmldsig#">401416565317479933092244230678231137456309019</ds:X509SerialNumber>
                                        </xades:IssuerSerial>
                                    </xades:Cert>
                                </xades:SigningCertificate>
                            </xades:SignedSignatureProperties>
                        </xades:SignedProperties>
                    </xades:QualifyingProperties>
                </Object>
            </Signature>
            <RegistryNumber>221</RegistryNumber>
        </exportNsiItemRequest>
    </s:Body>
</s:Envelope>

Проблема заключается в том, что ответ от сервера приходит следующий:
ru.lanit.security.crypto.CryptoException : ЭП не прошла проверку: Invalid XML Signature
Текст ответного сообщения следующий:
XML. SOAP-ответ от сервера
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
61
62
<soap:Envelope xmlns:ns2="http://dom.gosuslugi.ru/schema/integration/7.1.0.2/" xmlns:ns3="http://www.w3.org/2000/09/xmldsig#" xmlns:ns5="http://dom.gosuslugi.ru/schema/integration/7.1.0.2/nsi/" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Header>
        <ns2:ResultHeader>
            <ns2:Date>2015-12-16T09:14:28.819+03:00</ns2:Date>
            <ns2:MessageGUID>c7a1d946-9fcf-4ebc-9c08-20ebe81179cf</ns2:MessageGUID>
        </ns2:ResultHeader>
    </soap:Header>
    <soap:Body>
        <ns5:exportNsiItemResult Id="signed-data-container">
            <ds:Signature Id="xmldsig-3208628d-03cc-4576-895d-ea6d78b1b6dd" 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:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr34102001-gostr3411" />
                    <ds:Reference URI="#signed-data-container">
                        <ds:Transforms>
                            <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
                            <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
                        </ds:Transforms>
                        <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr3411" />
                        <ds:DigestValue>iqCeIlUfsqxdZRuMTjvYKWBTVOtSNrJIYledBG8LrWA=</ds:DigestValue>
                    </ds:Reference>
                    <ds:Reference Type="http://uri.etsi.org/01903#SignedProperties" URI="#xmldsig-3208628d-03cc-4576-895d-ea6d78b1b6dd-signedprops">
                        <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr3411" />
                        <ds:DigestValue>yASmvpbUBqEPr1Vp+qzYjXhzzXymC9ggqUZZ8GbBVkI=</ds:DigestValue>
                    </ds:Reference>
                </ds:SignedInfo>
                <ds:SignatureValue>...</ds:SignatureValue>
                <ds:KeyInfo>
                    <ds:X509Data>
                        <ds:X509Certificate>...</ds:X509Certificate>
                    </ds:X509Data>
                </ds:KeyInfo>
                <ds:Object>
                    <xades:QualifyingProperties Target="#xmldsig-3208628d-03cc-4576-895d-ea6d78b1b6dd" xmlns:xades="http://uri.etsi.org/01903/v1.3.2#">
                        <xades:SignedProperties Id="xmldsig-3208628d-03cc-4576-895d-ea6d78b1b6dd-signedprops">
                            <xades:SignedSignatureProperties>
                                <xades:SigningTime>2015-12-16T09:14:28.870+03:00</xades:SigningTime>
                                <xades:SigningCertificate>
                                    <xades:Cert>
                                        <xades:CertDigest>
                                            <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr3411" />
                                            <ds:DigestValue>Sz5+eJyswooXj8h3A5bhMbPG61QPExSKXuw+ZLzyeQ8=</ds:DigestValue>
                                        </xades:CertDigest>
                                        <xades:IssuerSerial>
                                            <ds:X509IssuerName>cn=CRYPTO-PRO Test Center 2,o=CRYPTO-PRO LLC,l=Moscow,c=RU,1.2.840.113549.1.9.1=support@cryptopro.ru</ds:X509IssuerName>
                                            <ds:X509SerialNumber>401416477754091206680439394611221196150735163</ds:X509SerialNumber>
                                        </xades:IssuerSerial>
                                    </xades:Cert>
                                </xades:SigningCertificate>
                            </xades:SignedSignatureProperties>
                        </xades:SignedProperties>
                    </xades:QualifyingProperties>
                </ds:Object>
            </ds:Signature>
            <ns2:ErrorMessage>
                <ns2:ErrorCode>AUTH01105</ns2:ErrorCode>
                <ns2:Description>Ошибка формата подписи запроса</ns2:Description>
                <ns2:StackTrace>ru.lanit.hcs.integration.common.exception.OperationProcessorException: ЭП не прошла проверку: Invalid XML Signature</ns2:StackTrace>
            </ns2:ErrorMessage>
        </ns5:exportNsiItemResult>
    </soap:Body>
</soap:Envelope>


Подскажите пожалуйста:
1) Как сделать валидную подпись, которая будет проходить проверку сервером, используя WCF ?
2) Как с помощью средств CryptoPro.NET отказаться от использования «МагПро КриптоТуннель» ?
1
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.12.2015, 11:46
Ответы с готовыми решениями:

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

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

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

999
187 / 100 / 19
Регистрация: 15.09.2011
Сообщений: 801
19.05.2016, 12:03
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от hhmm Посмотреть сообщение
Тогда к чему эти страдания - я проблему обошел с помощью пула.
Pool - это немного отличается. Я же написал, что асинхронные запросы обрабатываются быстро. Не работает по другой причине - косяк ГИС с моим сертификатом. Я им прислал серт, а они его прикрепить даже толком не могут. Код асинхронных запросов можно перенести на любые. А оплаты вообще только в асинхронке - так что может кому и пригодится.
0
 Аватар для hhmm
67 / 58 / 1
Регистрация: 01.04.2016
Сообщений: 346
19.05.2016, 12:17
Цитата Сообщение от umatkot Посмотреть сообщение
Pool - это немного отличается.
Согласен, что отличается. Но если это позволяет решить проблему и двигаться дальше, то зачем тратить на это время.
Вот когда дойду до загрузки начислений в асинхронном режиме - тогда и буду страдать.
0
0 / 0 / 0
Регистрация: 20.01.2016
Сообщений: 36
19.05.2016, 12:48
hhmm, ты ЛС грузил? если да сколько передаешь ЛС за 1 запрос?
0
0 / 0 / 0
Регистрация: 27.01.2016
Сообщений: 9
19.05.2016, 13:29
Цитата Сообщение от umatkot Посмотреть сообщение
hhmm, вот пример асинхронных запросов к справочникам. Работали до того момента, пока я не начал мучиться с сертификатом.
Сам XML getState не могу прислать, так как проблема при первичной отправке.
Код рабочий - 100%.
Студия сама генерирует асинхронные методы при подгрузке wsdl. Нужно только разрешить создание асинхронных операций. Ну и выгрузку содержания справочников можно уже запараллелить.

C#
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
        
public Dictionary<string, string> ExportNsiListAsync()
        {
            Dictionary<string, string> res = new Dictionary<string, string>();
            var request = new exportNsiListRequest
            {
                Id = signContainerId
            };
            var taskAsyncResponse = client.exportNsiListAsync(new HeaderType
            {
                Date = DateTime.Now,
                MessageGUID = Guid.NewGuid().ToString()
            }, request);
 
          //  Task.WaitAll(new Task[] {taskAsyncResponse});
            try
            {
                //Task.WaitAll(new Task[] {taskAsyncResponse});
                taskAsyncResponse.Wait();
            }
            catch (AggregateException ex)
            {
                
            }
 
            if (taskAsyncResponse.Status != TaskStatus.Faulted)
            {
                NsiListType items = (NsiListType) taskAsyncResponse.Result.exportNsiListResult.Item;
                foreach (NsiItemInfoType s in items.NsiItemInfo.OrderBy(x => Convert.ToInt32(x.RegistryNumber)))
                {
                    res.Add(s.RegistryNumber, s.Name);
                }
            }
            return res;
            
        }
Добавлено через 10 минут
Хотя, возможно, студия оборачивает синхронный запрос в таск.
0
 Аватар для hhmm
67 / 58 / 1
Регистрация: 01.04.2016
Сообщений: 346
19.05.2016, 14:20
Цитата Сообщение от VladimirGT Посмотреть сообщение
hhmm, ты ЛС грузил? если да сколько передаешь ЛС за 1 запрос?
Лично я - нет. Мы работаем в двух направлениях сразу - грузить и через Excel и через сервисы, что лучше будет работать, то и будем использовать.
Лицевые пока решено пропихивать через файлы Excel, этим занимается другой человек.
Вроде как у него получилось пропихнуть часть лицевых.
Я ковыряюсь с web-сервисами. Потом мы наши результаты женим между собой.

Цитата Сообщение от VladimirGT Посмотреть сообщение
если да сколько передаешь ЛС за 1 запрос?
Делали пробную загрузку через файл Excel для одного маленького ТСЖ, около 200 лицевых, загрузилось около 40 после чего ГИС ЖКХ упала.
0
0 / 0 / 0
Регистрация: 20.01.2016
Сообщений: 36
19.05.2016, 15:04
мы тоже сразу по двум направлениям работаем, как ты правильно сказал, посмотрим, что будет работать лучше!
0
13 / 11 / 0
Регистрация: 05.02.2016
Сообщений: 79
19.05.2016, 15:35
trawinka, тоже вчера отправил заявку. Пока нет ответа. Звонил в поддержку ГИСа, они вообще не знают об этом сервисе.
0
187 / 100 / 19
Регистрация: 15.09.2011
Сообщений: 801
19.05.2016, 15:41
Цитата Сообщение от Jinks Посмотреть сообщение
Хотя, возможно, студия оборачивает синхронный запрос в таск.
Если ты про асинхронные - то как-бы да, но механизм уже переходит на платформу ГИС.
0
0 / 0 / 0
Регистрация: 19.05.2016
Сообщений: 26
19.05.2016, 17:16
Здравствуйте! Кто знает, нормально ли, что если в ds:X509IssuerName (xades:SignedProperties/.../ds:X509IssuerName) стоит атрибут E, сервис выдает внутреннюю ошибку: "Unknown object id - E - passed to distinguished name"? Имя формирую с помощью BouncyCastle.
0
6 / 6 / 0
Регистрация: 24.12.2015
Сообщений: 41
19.05.2016, 17:28
loot hoarder, E - это email? используйте 1.2.840.113549.1.9.1
1
0 / 0 / 0
Регистрация: 19.05.2016
Сообщений: 26
19.05.2016, 17:45
Dr_Elvis, спасибо. А из-за чего может быть такая ошибка. Делаю запрос exportDataProvider к 54.76.42.99:60046 по http. Подписываю нетестовым сертификатом заказчика, который закреплен за нашей ИС (отправляли заявку), но в ответе получаю "ЭП не прошла проверку: Cannot find any certificates referenced by xades:SigningCertificate". В ds:X509IssuerName Е поменял на цифровой код.
0
6 / 6 / 0
Регистрация: 24.12.2015
Сообщений: 41
19.05.2016, 17:58
loot hoarder, Либо подпись не верно сформирована, либо подпись не соответствует поставщику информации, либо(если используется сертификат ИС) не проставлен IsOperatorSighnature. Вариантов может быть несколько. Лучше привести пример запроса и ответа полностью.
0
13 / 11 / 0
Регистрация: 05.02.2016
Сообщений: 79
19.05.2016, 18:23
Доброго времени суток. Пытаюсь организовать подключение к тестовому стенду c использованием Рутокен ЭЦП флеш. Создал криптотунель через Stunnel. Подписываю сообщение с помощью слегка измененной библиотеки Xades-master. Ответ приходит с ошибкой: ЭП не прошла проверку: Certificate is not trusted. Подскажите, с чем это может быть связано?

Подписанное сообщение
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
61
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <soap:Header>
        <ISRequestHeader xmlns="http://dom.gosuslugi.ru/schema/integration/8.7.0.7/">
            <Date>2016-05-19T18:08:50.2843395+03:00</Date>
            <MessageGUID>4cce9ea7-a61b-4e59-b5a6-c8945bc42d26</MessageGUID>
        </ISRequestHeader>
    </soap:Header>
    <soap:Body>
        <exportOrgRegistryRequest Id="signed-data-container" xmlns="http://dom.gosuslugi.ru/schema/integration/8.7.0.7/organizations-registry-common/">
            <ds:Signature Id="xmldsig-c0873a56-459e-4a08-b2e8-6ff171c7deca" 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:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr34102001-gostr3411" />
                    <ds:Reference Id="xmldsig-c0873a56-459e-4a08-b2e8-6ff171c7deca-ref0" URI="#signed-data-container">
                        <ds:Transforms>
                            <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
                            <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
                        </ds:Transforms>
                        <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr3411" />
                        <ds:DigestValue>UERqPuDWksl3ikc/6TR0hm3VX7iznQeuIYKG9NJ7AnE=</ds:DigestValue>
                    </ds:Reference>
                    <ds:Reference URI="#xmldsig-c0873a56-459e-4a08-b2e8-6ff171c7deca-signedprops" Type="http://uri.etsi.org/01903#SignedProperties">
                        <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr3411" />
                        <ds:DigestValue>EijPCR5JQdQO7pFk0DnrD6sLHZirFJXm6gWXo8yTkfk=</ds:DigestValue>
                    </ds:Reference>
                </ds:SignedInfo>
                <ds:SignatureValue Id="xmldsig-c0873a56-459e-4a08-b2e8-6ff171c7deca-sigvalue">ej4jEmZEOLKsm3TqfdRM8bqW+MHrW6YWcAmTlLj5ZrsO156DKAlDAeOBi97LFtZnNgxNtYpK7VgRdDObVcXZxw==</ds:SignatureValue>
                <ds:KeyInfo>
                    <ds:X509Data>
                        <ds:X509Certificate>...</ds:X509Certificate>
                    </ds:X509Data>
                </ds:KeyInfo>
                <ds:Object>
                    <xades:QualifyingProperties Target="#xmldsig-c0873a56-459e-4a08-b2e8-6ff171c7deca" xmlns:xades141="http://uri.etsi.org/01903/v1.4.1#" xmlns:xades="http://uri.etsi.org/01903/v1.3.2#">
                        <xades:SignedProperties Id="xmldsig-c0873a56-459e-4a08-b2e8-6ff171c7deca-signedprops">
                            <xades:SignedSignatureProperties>
                                <xades:SigningTime>2016-05-19T18:09:43.743+03:00</xades:SigningTime>
                                <xades:SigningCertificate>
                                    <xades:Cert>
                                        <xades:CertDigest>
                                            <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr3411" />
                                            <ds:DigestValue>Qki0clCAlEW1CJE6UyJ/9+YkofKuz6V8ST9JwiCk1AY=</ds:DigestValue>
                                        </xades:CertDigest>
                                        <xades:IssuerSerial>
                                            <ds:X509IssuerName>1.2.643.100.1=1116165002161,1.2.643.3.131.1.1=006165167997,1.2.840.113549.1.9.1=ca@uec-ro.ru,C=RU,ST=61 Ростовская область,L=Ростов-на-Дону,O=ГАУ РО «РЦИС»,OU=Удостоверяющий центр,CN=GAU RO RCIS</ds:X509IssuerName>
                                            <ds:X509SerialNumber>315562039713409055859139</ds:X509SerialNumber>
                                        </xades:IssuerSerial>
                                    </xades:Cert>
                                </xades:SigningCertificate>
                            </xades:SignedSignatureProperties>
                        </xades:SignedProperties>
                    </xades:QualifyingProperties>
                </ds:Object>
            </ds:Signature>
            <SearchCriteria>
                <OGRN xmlns="http://dom.gosuslugi.ru/schema/integration/8.7.0.7/">1126195003824</OGRN>
            </SearchCriteria>
        </exportOrgRegistryRequest>
    </soap:Body>
</soap:Envelope>
Ответ:
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
61
62
63
64
65
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:ns3="http://www.w3.org/2000/09/xmldsig#" xmlns:ns4="http://dom.gosuslugi.ru/schema/integration/8.7.0.7/" xmlns:ns5="http://dom.gosuslugi.ru/schema/integration/8.7.0.7/organizations-registry-common/" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Header>
        <ns4:ResultHeader>
            <ns4:Date>2016-05-19T18:14:27.359+03:00</ns4:Date>
            <ns4:MessageGUID>4cce9ea7-a61b-4e59-b5a6-c8945bc42d26</ns4:MessageGUID>
        </ns4:ResultHeader>
    </soap:Header>
    <soap:Body>
        <ns5:exportOrgRegistryResult Id="signed-data-container">
            <ds:Signature Id="xmldsig-449a25ce-99f6-4568-ae85-267bb8f6ef07" 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:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr34102001-gostr3411"/>
                    <ds:Reference URI="#signed-data-container">
                        <ds:Transforms>
                            <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
                            <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
                        </ds:Transforms>
                        <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr3411"/>
                        <ds:DigestValue>f4bW1Hel4akmy7Fudsv0CLqYsxMc5c598Oxmi2kEMTk=</ds:DigestValue>
                    </ds:Reference>
                    <ds:Reference Type="http://uri.etsi.org/01903#SignedProperties" URI="#xmldsig-449a25ce-99f6-4568-ae85-267bb8f6ef07-signedprops">
                        <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr3411"/>
                        <ds:DigestValue>4d/hXA0JB9e57lMsjJUF33Smv4KFv0LZ3JvIiQed14s=</ds:DigestValue>
                    </ds:Reference>
                </ds:SignedInfo>
                <ds:SignatureValue>2wWeHdVctNhhFlG3VSIeJbI15m+b9iZlkNNgS8wk2fmpQf9SBolSDU6cN3XE2e3nqpv1vnr2B+v/358vOmU3FA==</ds:SignatureValue>
                <ds:KeyInfo>
                    <ds:X509Data>
                        <ds:X509Certificate>...</ds:X509Certificate>
                    </ds:X509Data>
                </ds:KeyInfo>
                <ds:Object>
                    <xades:QualifyingProperties Target="#xmldsig-449a25ce-99f6-4568-ae85-267bb8f6ef07" xmlns:xades="http://uri.etsi.org/01903/v1.3.2#">
                        <xades:SignedProperties Id="xmldsig-449a25ce-99f6-4568-ae85-267bb8f6ef07-signedprops">
                            <xades:SignedSignatureProperties>
                                <xades:SigningTime>2016-05-19T18:09:56.787+03:00</xades:SigningTime>
                                <xades:SigningCertificate>
                                    <xades:Cert>
                                        <xades:CertDigest>
                                            <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr3411"/>
                                            <ds:DigestValue>xVlnHO/UsCPMapaQRroPok1o3cmrUyrJ6SBc6sEi78k=</ds:DigestValue>
                                        </xades:CertDigest>
                                        <xades:IssuerSerial>
                                            <ds:X509IssuerName>cn=CRYPTO-PRO Test Center 2,o=CRYPTO-PRO LLC,l=Moscow,c=RU,1.2.840.113549.1.9.1=support@cryptopro.ru</ds:X509IssuerName>
                                            <ds:X509SerialNumber>401418717008771244595411458054990910282765788</ds:X509SerialNumber>
                                        </xades:IssuerSerial>
                                    </xades:Cert>
                                </xades:SigningCertificate>
                            </xades:SignedSignatureProperties>
                        </xades:SignedProperties>
                    </xades:QualifyingProperties>
                </ds:Object>
            </ds:Signature>
            <ns4:ErrorMessage>
                <ns4:ErrorCode>AUT011005</ns4:ErrorCode>
                <ns4:Description>Ошибка формата подписи запроса</ns4:Description>
                <ns4:StackTrace>ru.lanit.hcs.integration.common.exception.OperationProcessorException: ЭП не прошла проверку: Certificate is not trusted: L=г. Ростов-на-Дону,ST=61 Ростовская область,C=RU,1.2.643.100.1=1126195003824,O=КП РО "Информационная база ЖКХ",E=analytic@ibzkh.ru,1.2.643.3.131.1.1=006167106894,CN=Электронная система мониторинга технического состояния многоквар; Serial number=315562039713409055859139
    at ...
                </ns4:StackTrace>
            </ns4:ErrorMessage>
        </ns5:exportOrgRegistryResult>
    </soap:Body>
</soap:Envelope>
0
 Аватар для hhmm
67 / 58 / 1
Регистрация: 01.04.2016
Сообщений: 346
19.05.2016, 19:42
Цитата Сообщение от miron_valentin Посмотреть сообщение
Ответ приходит с ошибкой: ЭП не прошла проверку: Certificate is not trusted
Вы самое интересное, свой открытый ключ, из своего примера выкусили - и напрасно, публикация открытого ключа вам никак не повредит.

Но, по косвенным признакам, таким как ответ сервера и кусочку адреса uec-ro.ru в вашем запросе можно предположить, что ваш удостоверяющий центр бросил свой домен uec-ro.ru и сервер при проверке цепочек доверия прописанных
в вашем сертификате не может проверить подлинность выдавшего вам ключ удостоверяющего центра.

Если перейти по адресу http://www.uec-ro.ru то там написано, что Наш сайт переехал.
0
0 / 0 / 0
Регистрация: 19.05.2016
Сообщений: 26
20.05.2016, 09:07
Dr_Elvis,

Запрос

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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Header>
      <h:RequestHeader xmlns:h="http://dom.gosuslugi.ru/schema/integration/8.7.0.7/">
         <h:Date>2016-05-19T14:56:46+03:00</h:Date>
         <h:MessageGUID>d86078e4-c436-4239-acb4-65b924ee3b38</h:MessageGUID>
         <h:SenderID>fb7aa948-34f7-4ca8-9367-52bef5490f54</h:SenderID>
      </h:RequestHeader>
   </soap:Header>
   <soap:Body>
      <exportDataProviderRequest xmlns="http://dom.gosuslugi.ru/schema/integration/8.7.0.7/organizations-registry-common/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Id="702a5b89-6eb6-46ff-9e3b-13b9925e9cdf">
         <Signature xmlns="http://www.w3.org/2000/09/xmldsig#" Id="xmldsig-c700097f-252f-4214-b348-68b3f8e90fb5">
            <SignedInfo>
               <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
               <SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr34102001-gostr3411" />
               <Reference Id="xmldsig-c700097f-252f-4214-b348-68b3f8e90fb5-ref0" URI="#702a5b89-6eb6-46ff-9e3b-13b9925e9cdf">
                  <Transforms>
                     <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
                     <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
                  </Transforms>
                  <DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr3411" />
                  <DigestValue>X5NvtUDzBjixcw8r5EfqkVlNPT9sPRHDhR+dTNgtLc8=</DigestValue>
               </Reference>
               <Reference URI="#xmldsig-c700097f-252f-4214-b348-68b3f8e90fb5-signedprops" Type="http://uri.etsi.org/01903#SignedProperties">
                  <DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr3411" />
                  <DigestValue>xLSxlEqXyrsZTF6/8tfe/3oZHyUDLX0LAYdq3cEv0sA=</DigestValue>
               </Reference>
            </SignedInfo>
            <SignatureValue Id="xmldsig-c700097f-252f-4214-b348-68b3f8e90fb5-sigvalue">YZZF1Hhu1bkpVhWBPY6v/KWbHYvJkJHtcS1+Nfz58paPdBh/ui7ZFyjVTBWNjgvu
LkY2+Vb0NNJ+CdwiDuTWDw==</SignatureValue>
            <KeyInfo>
               <X509Data>
                  <X509Certificate>MIIKIzCCCdKgAwIBAgIKTWEndQACAACXNzAIBgYqhQMCAgMwggGMMRgwFgYFKoUD
ZAESDTEwMjY2MDU2MDY2MjAxGjAYBggqhQMDgQMBARIMMDA2NjYzMDAzMTI3MSww
KgYDVQQJDCPQn9GALiDQmtC+0YHQvNC+0L3QsNCy0YLQvtCyINC0LiA1NjEeMBwG
CSqGSIb3DQEJARYPY2FAc2tia29udHVyLnJ1MQswCQYDVQQGEwJSVTEzMDEGA1UE
CAwqNjYg0KHQstC10YDQtNC70L7QstGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMMSEw
HwYDVQQHDBjQldC60LDRgtC10YDQuNC90LHRg9GA0LMxLjAsBgNVBAoMJdCX0JDQ
niDCq9Cf0KQgwqvQodCa0JEg0JrQvtC90YLRg9GAwrsxMDAuBgNVBAsMJ9Cj0LTQ
vtGB0YLQvtCy0LXRgNGP0Y7RidC40Lkg0YbQtdC90YLRgDE/MD0GA1UEAww20KPQ
piDQl9CQ0J4gwqvQn9CkIMKr0KHQmtCRINCa0L7QvdGC0YPRgMK7IChRdWFsaWZp
ZWQpMB4XDTE1MDkyODA4NDkwMFoXDTE2MDkyODA4NTAwMFowggGIMRowGAYIKoUD
A4EDAQESDDAwNjAyNzEzNzA5OTEgMB4GCSqGSIb3DQEJARYRYm9tYmJlckBnbWFp
bC5jb20xCzAJBgNVBAYTAlJVMS0wKwYDVQQIDCQ2MCDQn9GB0LrQvtCy0YHQutCw
0Y8g0L7QsdC70LDRgdGC0YwxEzARBgNVBAcMCtCf0YHQutC+0LIxGjAYBgNVBAoM
EdCe0J7QniAi0JbQrdCjLTEiMRowGAYDVQQDDBHQntCe0J4gItCW0K3Qoy0xIjEZ
MBcGA1UEDAwQ0JTQuNGA0LXQutGC0L7RgDEXMBUGA1UEBAwO0JXRgNC+0YXQuNC9
0LAxKjAoBgNVBCoMIdCV0LvQtdC90LAg0JDQvdCw0YLQvtC70YzQtdCy0L3QsDEt
MCsGA1UECQwk0KPQm9CY0KbQkCDQndCV0JrQoNCQ0KHQntCS0JAsIDM4LzI1MRgw
FgYFKoUDZAESDTExMTYwMjcwMDk3MDIxFjAUBgUqhQNkAxILMDY1Njk3MjU4MTQw
YzAcBgYqhQMCAhMwEgYHKoUDAgIkAAYHKoUDAgIeAQNDAARAIFhPd4KDsFASJllO
HOVaZ/8G+wT4J2LQgeZjyEa0KeRUq7yUXZ4cwku7NahM561SdBC9HtvmaaW/4y6r
+peUUaOCBhIwggYOMA4GA1UdDwEB/wQEAwIE8DATBgNVHSAEDDAKMAgGBiqFA2Rx
ATBDBgNVHSUEPDA6BggrBgEFBQcDAgYIKwYBBQUHAwQGByqFAwICIgYGByqFAwMH
CAEGCCqFAwMFCgIMBggqhQMDBwABDDAcBgNVHREEFTATgRFib21iYmVyQGdtYWls
LmNvbTAdBgNVHQ4EFgQUx6AfSt6lvrYJTXYsJirD0hSyhhMwggHNBgNVHSMEggHE
MIIBwIAUrN+DLDx83ofRYb6hmvGMjKStNHChggGUpIIBkDCCAYwxGDAWBgUqhQNk
ARINMTAyNjYwNTYwNjYyMDEaMBgGCCqFAwOBAwEBEgwwMDY2NjMwMDMxMjcxLDAq
BgNVBAkMI9Cf0YAuINCa0L7RgdC80L7QvdCw0LLRgtC+0LIg0LQuIDU2MR4wHAYJ
KoZIhvcNAQkBFg9jYUBza2Jrb250dXIucnUxCzAJBgNVBAYTAlJVMTMwMQYDVQQI
DCo2NiDQodCy0LXRgNC00LvQvtCy0YHQutCw0Y8g0L7QsdC70LDRgdGC0YwxITAf
BgNVBAcMGNCV0LrQsNGC0LXRgNC40L3QsdGD0YDQszEuMCwGA1UECgwl0JfQkNCe
IMKr0J/QpCDCq9Ch0JrQkSDQmtC+0L3RgtGD0YDCuzEwMC4GA1UECwwn0KPQtNC+
0YHRgtC+0LLQtdGA0Y/RjtGJ0LjQuSDRhtC10L3RgtGAMT8wPQYDVQQDDDbQo9Cm
INCX0JDQniDCq9Cf0KQgwqvQodCa0JEg0JrQvtC90YLRg9GAwrsgKFF1YWxpZmll
ZCmCED5kHn10Mdi8T+2QWhv701IwgYQGA1UdHwR9MHswO6A5oDeGNWh0dHA6Ly9j
ZHAuc2tia29udHVyLnJ1L2NkcC9rb250dXItcXVhbGlmaWVkLTIwMTQuY3JsMDyg
OqA4hjZodHRwOi8vY2RwMi5za2Jrb250dXIucnUvY2RwL2tvbnR1ci1xdWFsaWZp
ZWQtMjAxNC5jcmwwgdwGCCsGAQUFBwEBBIHPMIHMMDEGCCsGAQUFBzABhiVodHRw
Oi8vcGtpLnNrYmtvbnR1ci5ydS9vY3NwL29jc3Auc3JmMEoGCCsGAQUFBzAChj5o
dHRwOi8vY2RwLnNrYmtvbnR1ci5ydS9jZXJ0aWZpY2F0ZXMva29udHVyLXF1YWxp
ZmllZC0yMDE0LmNydDBLBggrBgEFBQcwAoY/aHR0cDovL2NkcDIuc2tia29udHVy
LnJ1L2NlcnRpZmljYXRlcy9rb250dXItcXVhbGlmaWVkLTIwMTQuY3J0MIGTBgcq
hQMCAjECBIGHMIGEMHQWQmh0dHA6Ly9jYS5za2Jrb250dXIucnUvYWJvdXQvZG9j
dW1lbnRzL2NyeXB0b3Byby1saWNlbnNlLXF1YWxpZmllZAwq0KHQmtCRINCa0L7Q
vdGC0YPRgCDQuCDQodC10YDRgtGD0Lwt0J/RgNC+AwIF4AQMEbUjhdOfOwHhPnDY
MCsGA1UdEAQkMCKADzIwMTUwOTI4MDg0OTAwWoEPMjAxNjA5MjgwODQ5MDBaMDYG
BSqFA2RvBC0MKyLQmtGA0LjQv9GC0L7Qn9GA0L4gQ1NQIiAo0LLQtdGA0YHQuNGP
IDMuNikwggExBgUqhQNkcASCASYwggEiDCsi0JrRgNC40L/RgtC+0J/RgNC+IENT
UCIgKNCy0LXRgNGB0LjRjyAzLjYpDFMi0KPQtNC+0YHRgtC+0LLQtdGA0Y/RjtGJ
0LjQuSDRhtC10L3RgtGAICLQmtGA0LjQv9GC0L7Qn9GA0L4g0KPQpiIg0LLQtdGA
0YHQuNC4IDEuNQxOQ9C10YDRgtC40YTQuNC60LDRgiDRgdC+0L7RgtCy0LXRgtGB
0YLQstC40Y8g4oSWINCh0KQvMTI0LTIyMzgg0L7RgiAwNC4xMC4yMDEzDE5D0LXR
gNGC0LjRhNC40LrQsNGCINGB0L7QvtGC0LLQtdGC0YHRgtCy0LjRjyDihJYg0KHQ
pC8xMjgtMjM1MSDQvtGCIDE1LjA0LjIwMTQwCAYGKoUDAgIDA0EA9m/rB1H0Ci/H
58RQXHrT0EqHyyditYsK5rD/Uyfkk8g8mzvqHHAhqecYV1zolnw4gvMeQFUvqVxj
OkOqSoARlg==</X509Certificate>
               </X509Data>
            </KeyInfo>
            <Object>
               <xades:QualifyingProperties xmlns:xades="http://uri.etsi.org/01903/v1.3.2#" xmlns:xades141="http://uri.etsi.org/01903/v1.4.1#" Target="#xmldsig-c700097f-252f-4214-b348-68b3f8e90fb5">
                  <xades:SignedProperties Id="xmldsig-c700097f-252f-4214-b348-68b3f8e90fb5-signedprops">
                     <xades:SignedSignatureProperties>
                        <xades:SigningTime>2016-05-19T14:56:45+03:00</xades:SigningTime>
                        <xades:SigningCertificate>
                           <xades:Cert xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
                              <xades:CertDigest>
                                 <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr3411" />
                                 <ds:DigestValue>WSSAg6zeyF5/lA/F9Ovo8BdumLU2yHY/uf6bVDxiKFw=</ds:DigestValue>
                              </xades:CertDigest>
                              <xades:IssuerSerial>
                                 <ds:X509IssuerName>1.2.643.100.1=1026605606620,1.2.643.3.131.1.1=006663003127,STREET=Пр. Космонавтов д. 56,1.2.840.113549.1.9.1=ca@skbkontur.ru,C=RU,ST=66 Свердловская область,L=Екатеринбург,O=ЗАО &lt;ПФ &lt;СКБ Контур&gt;,OU=Удостоверяющий центр,CN=УЦ ЗАО &lt;ПФ &lt;СКБ Контур&gt; (Qualified)</ds:X509IssuerName>
                                 <ds:X509SerialNumber>365414396534860852270903</ds:X509SerialNumber>
                              </xades:IssuerSerial>
                           </xades:Cert>
                        </xades:SigningCertificate>
                     </xades:SignedSignatureProperties>
                  </xades:SignedProperties>
               </xades:QualifyingProperties>
            </Object>
         </Signature>
      </exportDataProviderRequest>
   </soap:Body>
</soap:Envelope>
Ответ

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
61
62
63
64
65
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns3="http://www.w3.org/2000/09/xmldsig#" xmlns:ns4="http://dom.gosuslugi.ru/schema/integration/8.7.0.7/" xmlns:ns5="http://dom.gosuslugi.ru/schema/integration/8.7.0.7/organizations-registry-common/">
   <soap:Header>
      <ns4:ResultHeader>
         <ns4:Date>2016-05-19T15:01:22.772+03:00</ns4:Date>
         <ns4:MessageGUID>d86078e4-c436-4239-acb4-65b924ee3b38</ns4:MessageGUID>
      </ns4:ResultHeader>
   </soap:Header>
   <soap:Body>
      <ns5:exportDataProviderResult Id="signed-data-container">
         <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="xmldsig-5eb5109f-422c-452a-944c-62004033f592">
            <ds:SignedInfo>
               <ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
               <ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr34102001-gostr3411" />
               <ds:Reference URI="#signed-data-container">
                  <ds:Transforms>
                     <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
                     <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
                  </ds:Transforms>
                  <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr3411" />
                  <ds:DigestValue>vsaRvFuM6VhXeHhzIfMCsP3870UssoTLmW2djByydVA=</ds:DigestValue>
               </ds:Reference>
               <ds:Reference Type="http://uri.etsi.org/01903#SignedProperties" URI="#xmldsig-5eb5109f-422c-452a-944c-62004033f592-signedprops">
                  <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr3411" />
                  <ds:DigestValue>CK73FNQhwv8SbPyE98YBstQq40nkdHPB5SQBgfUes2c=</ds:DigestValue>
               </ds:Reference>
            </ds:SignedInfo>
            <ds:SignatureValue>bso5plSyaNXl4BoFBTYQNaMXNbhBpXgOQoPfeTjb+8lVz7fe7jyWMYcGTHojsDdZDxerwYtBIcGVGBpbrPWHlA==</ds:SignatureValue>
            <ds:KeyInfo>
               <ds:X509Data>
                  <ds:X509Certificate>...</ds:X509Certificate>
               </ds:X509Data>
            </ds:KeyInfo>
            <ds:Object>
               <xades:QualifyingProperties xmlns:xades="http://uri.etsi.org/01903/v1.3.2#" Target="#xmldsig-5eb5109f-422c-452a-944c-62004033f592">
                  <xades:SignedProperties Id="xmldsig-5eb5109f-422c-452a-944c-62004033f592-signedprops">
                     <xades:SignedSignatureProperties>
                        <xades:SigningTime>2016-05-19T14:56:52.467+03:00</xades:SigningTime>
                        <xades:SigningCertificate>
                           <xades:Cert>
                              <xades:CertDigest>
                                 <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr3411" />
                                 <ds:DigestValue>xVlnHO/UsCPMapaQRroPok1o3cmrUyrJ6SBc6sEi78k=</ds:DigestValue>
                              </xades:CertDigest>
                              <xades:IssuerSerial>
                                 <ds:X509IssuerName>cn=CRYPTO-PRO Test Center 2,o=CRYPTO-PRO LLC,l=Moscow,c=RU,1.2.840.113549.1.9.1=support@cryptopro.ru</ds:X509IssuerName>
                                 <ds:X509SerialNumber>401418717008771244595411458054990910282765788</ds:X509SerialNumber>
                              </xades:IssuerSerial>
                           </xades:Cert>
                        </xades:SigningCertificate>
                     </xades:SignedSignatureProperties>
                  </xades:SignedProperties>
               </xades:QualifyingProperties>
            </ds:Object>
         </ds:Signature>
         <ns4:ErrorMessage>
            <ns4:ErrorCode>AUT011005</ns4:ErrorCode>
            <ns4:Description>Ошибка формата подписи запроса</ns4:Description>
            <ns4:StackTrace>ru.lanit.hcs.integration.common.exception.OperationProcessorException: ЭП не прошла проверку: Cannot find any certificates referenced by xades:SigningCertificate
at ru.lanit.hcs.integration.common.spring.service.impl.ValidationServiceImpl.validateSignatureItself(ValidationServiceImpl.java:162)
at ru.lanit.hcs.integration.common.spring.service.impl.ValidationServiceImpl.validateSignature(ValidationServiceImpl.java:112)
...</ns4:StackTrace>
         </ns4:ErrorMessage>
      </ns5:exportDataProviderResult>
   </soap:Body>
</soap:Envelope>
0
13 / 11 / 0
Регистрация: 05.02.2016
Сообщений: 79
20.05.2016, 10:05
Цитата Сообщение от hhmm Посмотреть сообщение
Вы самое интересное, свой открытый ключ, из своего примера выкусили - и напрасно, публикация открытого ключа вам никак не повредит.
Виноват. Сообщение по длине не проходило, вырезал самые длинные куски.
Цитата Сообщение от hhmm Посмотреть сообщение
Но, по косвенным признакам, таким как ответ сервера и кусочку адреса uec-ro.ru в вашем запросе можно предположить, что ваш удостоверяющий центр бросил свой домен uec-ro.ru и сервер при проверке цепочек доверия прописанных
в вашем сертификате не может проверить подлинность выдавшего вам ключ удостоверяющего центра.
Что ж, получается, что они выпустили нам сертификат с неверной информацией?

Вот открытая часть нашего сертификата:
XML
1
2
3
4
5
<ds:KeyInfo>
                    <ds:X509Data>
                        <ds:X509Certificate>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</ds:X509Certificate>
                    </ds:X509Data>
                </ds:KeyInfo>
Добавлено через 11 минут
loot hoarder, вот у человека аналогичная проблема была https://www.cryptopro.ru/forum... sts&t=9990
"Действительно, IssuerName. Экранирование в C# происходит не так, как ожидает веб-сервис ГИСа на Java."
0
0 / 0 / 0
Регистрация: 19.05.2016
Сообщений: 26
20.05.2016, 10:21
miron_valentin, да, я читал это, но там сошлись на том, что нужно использовать BouncyCastle.Crypto.dll, что я и делаю.
0
 Аватар для hhmm
67 / 58 / 1
Регистрация: 01.04.2016
Сообщений: 346
20.05.2016, 10:37
Цитата Сообщение от miron_valentin Посмотреть сообщение
Что ж, получается, что они выпустили нам сертификат с неверной информацией?
Почему сразу с неверной. Я думаю с верной.

Как я понимаю, в сертификате издатели сертификата могут внедрять разные url по которым сервер, если захочет, может проверять сертификаты, например по т.н. CRL (Certificate Revocation List - списки отзыва сертификатов) чтобы удостовериться, что сертификат не отозван удостоверяющим центром по заявлению владельца (в случае компроментации ключа).
Может быть часть url стала недоступной.
0
187 / 100 / 19
Регистрация: 15.09.2011
Сообщений: 801
20.05.2016, 11:38
miron_valentin, сам головной сертификат получается без проблем по ссылке http://www.uec-ro.ru/ca/gau ro rcis.cer.

Возможно, Ваш издатель не входит в список аккредитованных УЦ (http://e-trust.gosuslugi.ru/), с которыми работает ГИС ЖКХ или не хватает класса безопасности сертификата (методические рекомендации).

Работайте пока с тестовым, и задайте лучше вопрос техподдержке - что гадать, да ходить вокруг да около.

И, наверняка, даже если он не подходит - они даже не проверяли Ваш как и мой - тоже воткнули тупо на СИТ и отписались, что всё сделано.
0
 Аватар для hhmm
67 / 58 / 1
Регистрация: 01.04.2016
Сообщений: 346
20.05.2016, 11:45
Цитата Сообщение от umatkot Посмотреть сообщение
Работайте пока с тестовым, и задайте лучше вопрос техподдержке - что гадать, да ходить вокруг да около
По моему с тестовыми сертификатами лучше вообще не работать - мы для тестового сертификата указали ОГРН реальной организации,
а потом, когда срок тестового истек, решили зарегистрировать настоящий сертификат.

И тут в ГИС ЖКХ все начало расползаться.

Регистрация настоящего сертификата заняла три недели с неоднократными письмами с саппорт.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.05.2016, 11:45

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

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

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

1С и ГИС ЖКХ. Интеграция
Доброго дня, коллеги! Я думаю многие слышали о такой ГИС, как ЖКХ. Друзья, сталкивался ли кто нибудь с задачей интеграции с этой...

Интеграция с ГИС ЖКХ (ГЖ). 400 Bad request
Вводная: 1. C#. Классы proxy для работы с API генерятся утилитой SvcUtil.exe из wsdl-ек. 2. При срабатывании форматно-логического...


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

Или воспользуйтесь поиском по форуму:
480
Закрытая тема Создать тему
Новые блоги и статьи
Жизня: рисунок укладки багажа, сделанный клодом
anaschu 21.08.2026
Сделал 15 снимков, он по снимкам сделал схему.
Был там один разговор по поводу свободы в материальном мире.
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 будильника: начало и конец рабочего дня. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru