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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline izzy88man  
#1 Оставлено : 25 июня 2013 г. 12:27:31(UTC)
izzy88man

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

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

Здравствуйте. Ситуация следующая: есть облачная crm, физического доступа к которой нет, т.е. нет возможности установить туда сертификаты, только положить сертификат в виде файла. Так вот необходимо реализовать на c# возможность шифрования по ГОСТ, для автоматического запроса данных. Можете подсказать как реализовать?

Итак забудем про облако и попробуем все реализовать пока на локальной машине. Следующий код возвращает 403 ошибку при вызове GetResponse(). Ослик с этим сертификатом никаких ошибок не выдает!

Код:

 XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.Load(FileName);
                string pwd = "12345";
                Encoding enc = Encoding.UTF8;
                byte[] postBytes = enc.GetBytes(xmlDoc.OuterXml);
                //label1.Text = xmlDoc.ToString();  
            
                SecureString password = new SecureString();

                for (int i = 0; i < pwd.Length; i++)
                    password.AppendChar(pwd[i]);
           
                X509Certificate2 cert = new X509Certificate2("foatov.pfx", password);

               // ServicePointManager.CertificatePolicy = new CertPolicy();
                HttpWebRequest Request = (HttpWebRequest)WebRequest.Create("https://test-crs.rs-cb.ru/A2A/request.ashx");
                Request.ProtocolVersion = HttpVersion.Version11;
               // Request.MaximumAutomaticRedirections = 4;
               // Request.MaximumResponseHeadersLength = 4;
               // Request.Proxy = new WebProxy("127.0.0.1", 8888);
                Request.Credentials = CredentialCache.DefaultCredentials;
                Request.ContentType = "text/xml";


                Request.ContentLength = postBytes.Length;//xmlDoc.OuterXml.Length; //postBytes;
                Request.ClientCertificates.Add(cert);
                Request.UserAgent = "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)";
                Request.Method = "POST";

                Request.AllowAutoRedirect = true;
                Request.Referer = "https://test-crs.rs-cb.ru/";
                CookieContainer cookieCont = new CookieContainer();
                Request.CookieContainer = cookieCont;

                Stream dataStream = Request.GetRequestStream();
                dataStream.Write(postBytes, 0, postBytes.Length);
                dataStream.Close();

                HttpWebResponse Response = (HttpWebResponse)Request.GetResponse();


                string html = new StreamReader(Response.GetResponseStream(),
                                   Encoding.UTF8).ReadToEnd();


Подскажите где я ошибся!))

Если сертификат цеплять из хранилица My то все работает!!

Код:

X509Store storeMy = new X509Store(StoreName.My,
StoreLocation.CurrentUser);
storeMy.Open(OpenFlags.ReadOnly);

X509Certificate2Collection signerCertsColl = new
X509Certificate2Collection();
X509Certificate2Collection foundCertColl = storeMy.
Certificates.Find(X509FindType.FindBySubjectName,
"Имя сертификата", false);
Request.ClientCertificates.Add(foundCertColl[0]);


Реально ли сделать выбор сертификата не из хранилища а из файла???

Отредактировано пользователем 27 июня 2013 г. 7:04:36(UTC)  | Причина: Не указана

Offline Максим Коллегин  
#2 Оставлено : 1 июля 2013 г. 9:58:05(UTC)
Максим Коллегин

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

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,423
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 38 раз
Поблагодарили: 734 раз в 632 постах
хм, неплохо было бы установить на CRM КриптоПро CSP и КриптоПро .NET.
Знания в базе знаний, поддержка в центре поддержки
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.