it-swarm.com.de

Fehler: c # Die zugrunde liegende Verbindung wurde geschlossen: Konnte keine Vertrauensbeziehung für den sicheren SSL/TLS-Kanal herstellen

Ich versuche eine Anfrage über SSL zu stellen. Das Zertifikat ist bereits auf dem Computer installiert und funktioniert über den Browser.

Ich verwende diese Anfrage:

System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
byte[] data = encoding.GetBytes(request.Content.OuterXml.ToString());
string password = "XXXX";
X509Certificate2 cert = new X509Certificate2("c:\\zzzz.p12", password);
string key = cert.GetPublicKeyString();
string certData = Encoding.ASCII.GetString(cert.Export(X509ContentType.Cert));

Uri uri = new Uri(request.Url);
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(uri);
myRequest.Credentials = new NetworkCredential(request.User, request.Password.ToString());
myRequest.Method = "PUT";
myRequest.ContentType = request.ContentType;
myRequest.ContentLength = data.Length;
myRequest.ClientCertificates.Add(cert);

Stream newStream = myRequest.GetRequestStream();
newStream.Write(data, 0, data.Length);
newStream.Close();

System.IO.StreamReader st = new StreamReader(((HttpWebResponse)myRequest.GetResponse()).GetResponseStream());

Mit diesem Code bekomme ich diese Fehlermeldung:

Die zugrunde liegende Verbindung wurde geschlossen: Konnte keine Vertrauensstellung aufbauen Beziehung für den sicheren Kanal SSL/TLS. ---> System.Security.Authentication.AuthenticationException: Die entfernte Das Zertifikat ist gemäß dem Validierungsverfahren ungültig.

Worin besteht das Problem?

22
Roger G

Ich habe das Problem damit gelöst:

ServicePointManager.ServerCertificateValidationCallback = new        
RemoteCertificateValidationCallback
(
   delegate { return true; }
);
56
Roger G

Stellen Sie sicher, dass Ihr Zertifikat ordnungsgemäß vertrauenswürdig ist. Wurde das Stammzertifikat dem richtigen Zertifikatspeicher hinzugefügt (vertrauenswürdige Stammzertifizierungsstellen auf lokalem Computer)?

Dieser Fehler ist aufgetreten, als das (selbst erstellte) Stammzertifikat für ein (selbstsigniertes) Zertifikat den vertrauenswürdigen Stammzertifizierungsstellen für den aktuellen Benutzer hinzugefügt wurde. Durch das Verschieben des Stammzertifikats in den Stammzertifizierungsstellenspeicher auf dem lokalen Computer wurde mein Problem behoben.

0
bvgheluwe