2017-09-20 5 views
0

Ich habe eine kleine Windows-Anwendung, die ein Client-Zertifikat verwendet, um eine HttpWebRequest.The Client erfordert, dass ich ein X509Certificate (.CER-Datei selbstsigniertes Zertifikat) in der Anfrage enthalten. Aber ich bekomme den folgenden Fehler "Die Anfrage wurde abgebrochen. Es konnte kein sicherer SSL/TLS-Kanal erstellt werden." Ich habe sogar versucht mit .pfx Datei, aber den gleichen Fehler zu bekommen. Und unten ist der Code für das gleiche:Der sichere SSL/TLS-Kanal konnte nicht erstellt werden. Anfrage wurde abgebrochen C#

ServicePointManager.ServerCertificateValidationCallback = Delegierten (Object obj, X509Certificate Zertifikat, X509Chain Kette, SslPolicyErrors Fehler) { // vertrauen jedem Zertifikat return true; }; ServicePointManager.Expect100Continue = true;

  ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12; 

      string certPath1 = @"C:\tmpVenDXCCert.cer"; 

      X509Certificate xc = new X509Certificate(certPath1, "[email protected]");   

      HttpWebRequest Request = (HttpWebRequest) 
      WebRequest.Create("https://the-payments-place.com:8449"); 
      Request.ClientCertificates.Add(xc); 
      Request.UserAgent = "Client Cert Sample"; 
      Request.Method = "GET"; 
      HttpWebResponse Response = (HttpWebResponse)Request.GetResponse(); 

Jede Hilfe würde sehr geschätzt werden.

Regards,

Ram

Antwort

0

Versuchen folgende:

  1. das Zertifikat in Localmachine Shop Install "mmc.exe" verwenden. Siehe https://msdn.microsoft.com/en-us/library/bb950259(v=bts.10).aspx
  2. Verwenden folgenden Code

X509Store store = new X509Store (StoreName.My,

StoreLocation.LocalMachine); 

     store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly); 

     X509Certificate2Collection collection = store.Certificates; 

     X509Certificate2Collection certCollection = collection.Find(X509FindType.FindBySubjectName, certificateName,false); 

    var certificate = new X509Certificate2(); 

     certificate = certCollection[0]; 

     webRequest.ClientCertificates.Add(certificate); 
  1. ersetzen Certificate mit dem Betreff den Namen Ihres cert.
Verwandte Themen