Форум КриптоПро
»
Устаревшие продукты
»
КриптоПро CSP 3.6
»
Не удалось создать защищенный канал ssl tls
Статус: Новичок
Группы: Участники
Зарегистрирован: 24.08.2011(UTC) Сообщений: 6 Откуда: SPb
|
не удалось создать защищенный канал ssl tls - такая ошибка вылетает при попытке скачать xml с локальной машины. Код приложен. Цитата: using System; using System.Net; using System.IO; using System.Text; using System.Security.Cryptography; using System.Security.Cryptography.X509Certificates; using System.Runtime.InteropServices;
namespace SelectClientCert { class MyCerts {
private static int CERT_STORE_PROV_SYSTEM = 10; private static int CERT_SYSTEM_STORE_CURRENT_USER = (1 << 16); //private static int CERT_SYSTEM_STORE_LOCAL_MACHINE = (2 << 16);
[DllImport("CRYPT32", EntryPoint = "CertOpenStore", CharSet = CharSet.Unicode, SetLastError = true)] public static extern IntPtr CertOpenStore( int storeProvider, int encodingType, int hcryptProv, int flags, string pvPara);
[DllImport("CRYPT32", EntryPoint = "CertEnumCertificatesInStore", CharSet = CharSet.Unicode, SetLastError = true)] public static extern IntPtr CertEnumCertificatesInStore( IntPtr storeProvider, IntPtr prevCertContext);
[DllImport("CRYPT32", EntryPoint = "CertCloseStore", CharSet = CharSet.Unicode, SetLastError = true)] public static extern bool CertCloseStore( IntPtr storeProvider, int flags);
X509Certificate2Collection m_certs;
public MyCerts() { m_certs = new X509Certificate2Collection(); }
public int Init() { IntPtr storeHandle; storeHandle = CertOpenStore(CERT_STORE_PROV_SYSTEM, 0, 0, CERT_SYSTEM_STORE_CURRENT_USER, "MY"); IntPtr currentCertContext; currentCertContext = CertEnumCertificatesInStore(storeHandle, (IntPtr)0); int i = 0; while (currentCertContext != (IntPtr)0) { m_certs.Insert(i++, new X509Certificate2(currentCertContext)); currentCertContext = CertEnumCertificatesInStore(storeHandle, currentCertContext); } CertCloseStore(storeHandle, 0);
return m_certs.Count; }
public X509Certificate2 this[int index] { get { if (index < 0 || index > m_certs.Count) return null; else return m_certs[index]; } } } class MyHttpResource { String m_url;
public MyHttpResource(string url) { m_url = url; }
public void GetFile() {
HttpWebResponse result = null;
try {
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(m_url); req.Credentials = CredentialCache.DefaultCredentials; //req.ClientCertificates.Add(X509Certificate2.CreateFromCertFile("C:\\Temp\\cert\\c1.cer")); MyCerts mycert = new MyCerts(); if (mycert.Init() > 0) req.ClientCertificates.Add(mycert[0]); Console.WriteLine(mycert[0].Thumbprint); Console.WriteLine(mycert[1].Thumbprint); result = (HttpWebResponse)req.GetResponse();
StreamWriter writer = new StreamWriter(@"C:/123.txt"); Stream ReceiveStream = result.GetResponseStream();
#region For XML files Encoding encode = System.Text.Encoding.Default; #endregion
#region For sites //Encoding encode = System.Text.Encoding.GetEncoding("utf-8"); #endregion
StreamReader sr = new StreamReader(ReceiveStream, encode); Console.WriteLine("\r\nResponse stream received"); Char[] read = new Char[256]; int count = sr.Read(read, 0, 256);
Console.WriteLine("HTTP Response...\r\n"); while (count > 0) { String str = new String(read, 0, count); Console.Write(str); writer.WriteLine(str); count = sr.Read(read, 0, 256); } writer.Close(); } catch (WebException e) { Console.WriteLine(e.Message); } finally { if (result != null) { result.Close(); } } } } class CertSample { static void Main(string[] args) { //Console.WriteLine("Куды подрубимся?"); //string str = Console.ReadLine(); //if (!str.StartsWith("http://")) // if(!str.StartsWith("https://")) // str = "http://" + str; string str = @"https://192.168.191.248/xml/80020.xml"; Console.WriteLine("Подключаемся к "+str); try { MyHttpResource hr = new MyHttpResource(str);//"http://br.so-ups.ru/Public/Docs/DocList.aspx" hr.GetFile(); } catch (Exception e) { Console.WriteLine(e.Message); } return; } } }
|
|
|
|
Форум КриптоПро
»
Устаревшие продукты
»
КриптоПро CSP 3.6
»
Не удалось создать защищенный канал ssl tls
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close