Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

2 Страницы<12
Опции
К последнему сообщению К первому непрочитанному
Offline itturism  
#11 Оставлено : 6 апреля 2021 г. 13:57:37(UTC)
itturism

Статус: Новичок

Группы: Участники
Зарегистрирован: 05.04.2021(UTC)
Сообщений: 7
Российская Федерация
Откуда: Санкт Петербург

Я на сервере по ссылке, которую вы приводите, не могу установить выпущенный сертификат. Пишет ошибку:

Запрошенный вами сертификат был вам выдан.

Установить этот сертификат
Данный ЦС не является доверенным. Чтобы доверять сертификатам, выданным этим центром сертификации, установите этот сертификат ЦС

Выпуск


Я устанавливаю предлагаемый сертификат для решения конфликта, и он появляется в реестре сертификатов в разделе Personal, но установка полученного сертификата из браузера проходит с той же ошибкой Данный ЦС не является доверенным. Несколько попыток повторить действия приводят к тем же результатам.
Offline Андрей *  
#12 Оставлено : 6 апреля 2021 г. 14:01:22(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 13,340
Мужчина
Российская Федерация

Сказал «Спасибо»: 550 раз
Поблагодарили: 2212 раз в 1727 постах
Что мешает установить сертификат УЦ в правильное хранилище - доверенные корневые? Root.
Техническую поддержку оказываем тут
Наша база знаний
Offline itturism  
#13 Оставлено : 6 апреля 2021 г. 15:15:04(UTC)
itturism

Статус: Новичок

Группы: Участники
Зарегистрирован: 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;
}
}
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
2 Страницы<12
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.