Статус: Новичок
Группы: Участники
Зарегистрирован: 05.04.2021(UTC) Сообщений: 7 Откуда: Санкт Петербург
|
Я на сервере по ссылке, которую вы приводите, не могу установить выпущенный сертификат. Пишет ошибку:
Запрошенный вами сертификат был вам выдан.
Установить этот сертификат Данный ЦС не является доверенным. Чтобы доверять сертификатам, выданным этим центром сертификации, установите этот сертификат ЦС
Выпуск
Я устанавливаю предлагаемый сертификат для решения конфликта, и он появляется в реестре сертификатов в разделе Personal, но установка полученного сертификата из браузера проходит с той же ошибкой Данный ЦС не является доверенным. Несколько попыток повторить действия приводят к тем же результатам.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,340 Сказал «Спасибо»: 550 раз Поблагодарили: 2212 раз в 1727 постах
|
Что мешает установить сертификат УЦ в правильное хранилище - доверенные корневые? Root. |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 05.04.2021(UTC) Сообщений: 7 Откуда: Санкт Петербург
|
Спасибо за помощь. Проблема решена. Ошибка заключалась в том что передавался не весь xml а только то что было в XMLDocumetnt.OuterXML или даже InnerXmlю Не важно что, но это было не несколько байт меньше нежели сохранить XMLDocument в файл, а потом прочитать массив byte[] из этого файла.
Вот полный метод подписания, который работает, может кому пригодится private static void Sign() { try { Document doc = new Document(); //Создание документа , заполнение CreateDocumentRequest(doc); var serializer = new XmlSerializer(typeof(Document)); XmlDocument xDoc = new XmlDocument(); xDoc.PreserveWhitespace = true; using (var stream = new MemoryStream()) { serializer.Serialize(stream, doc); stream.Position = 0; xDoc.Load(stream); } if (xDoc.FirstChild.NodeType == XmlNodeType.XmlDeclaration) ((XmlDeclaration)xDoc.FirstChild).Encoding = Encoding.UTF8.HeaderName; X509Store store = new X509Store(StoreName.My, StoreLocation.CurrentUser); store.Open(OpenFlags.OpenExistingOnly | OpenFlags.ReadOnly); X509Certificate2Collection found = store.Certificates.Find(X509FindType.FindBySubjectName, SERT_NAME, false); X509Certificate2 Certificate = found[0]; XmlElement sign = SignXml(Certificate, xDoc); //Добавляем подписанную секцию в документ xDoc.DocumentElement.GetElementsByTagName("SgntrSt")[0].AppendChild(xDoc.ImportNode(sign, true)); var file = Path.GetTempFileName(); xDoc.Save(file); ASCIIEncoding encoding = new ASCIIEncoding();
byte[] byte1 = File.ReadAllBytes(file); Ver(true, file); HttpWebRequest webRequest = (HttpWebRequest)HttpWebRequest.Create("https://grampus-int.alfabank.ru/API/v1/ISO20022/Statements"); webRequest.Method = "POST"; webRequest.ContentType = "application/xml"; webRequest.Accept = "*/*"; webRequest.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate; webRequest.Headers["Authorization"] = "Basic " + Convert.ToBase64String(Encoding.Default.GetBytes("643223:123456")); webRequest.ContentLength = byte1.Length; webRequest.ClientCertificates.Add(Certificate); Console.WriteLine($"{webRequest.RequestUri}"); ServicePointManager.ServerCertificateValidationCallback = (a, b, c, d) => true; Stream bodyStream = webRequest.GetRequestStream(); bodyStream.Write(byte1, 0, byte1.Length); foreach (var v in webRequest.Headers) { var vv = webRequest.Headers[v.ToString()]; Console.WriteLine($"{ v}: {vv}"); } Console.WriteLine($"{xDoc.OuterXml}"); HttpWebResponse myHttpWebResponse = (HttpWebResponse)webRequest.GetResponse(); StreamReader myStreamReader = new StreamReader(myHttpWebResponse.GetResponseStream(), Encoding.GetEncoding(1251)); var result = myStreamReader.ReadToEnd(); } catch (WebException ex) { using (var stream = ex.Response.GetResponseStream()) using (var reader = new StreamReader(stream)) { Console.WriteLine($"Error: {reader.ReadToEnd()}"); Console.ReadKey(); } } catch (Exception ex) { throw ex; } }
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close