Ich weiß nicht, ob ich alle Informationen habe, die nötig sind, um diese Frage gut zu formulieren, also ertragen Sie es mit mir.
Ich habe eine lokale Webseite (lokale Bedeutung 192.168. *), die mit einem selbstsignierten SSL-Zertifikat geschützt ist. Ich versuche, mit einem System.Net.HttpWebRequest-Objekt auf diese Seite zuzugreifen, aber ich stoße auf ein seltsames Problem.
Wenn auf diese Seite in Internet Explorer mit deaktivierter Option "Use SSL 2.0" zugegriffen wird, gibt der Browser einen Fehler zurück, als ob er keine Verbindung herstellen kann. (Mit anderen Worten, ein Browserverbindungsfehler, im Gegensatz zu einem vom Server gesendeten Fehler.) Wenn die Option "SSL 2.0 verwenden" aktiviert ist, funktioniert die Seite ordnungsgemäß und Sie erhalten die Standardwarnung, dass es sich um ein selbstsigniertes Zertifikat handelt , möchten Sie fortfahren usw. (Seltsamerweise funktioniert Firefox, der angeblich kein SSL 2.0 aktiviert hat.)
Mein Problem ist jetzt, dass ich versuche, mit einem HttpWebRequest-Objekt auf diese Seite zuzugreifen, und der Fehler, den es zurückgibt, ist, dass die Verbindung unerwartet geschlossen wurde, genau wie der IE, wenn "SSL 2.0 verwenden" ausgeschaltet ist . (Ich habe bereits Code, um die Tatsache zu ignorieren, dass es ein selbstsigniertes Zertifikat ist, aber es kommt nicht einmal so weit.)
Wie bekomme ich die System.Net.HttpWebRequest auf, "SSL 2.0 verwenden", wenn es seine Anfrage stellt?
Ich habe dieses Problem selbst im Umgang mit Ssl3 getroffen, obwohl ich nicht sicher bin, ob der gleiche Ratschlag für SSL2 funktionieren würde?
Um das Problem zu umgehen, setze ich das Ssl3-Flag auf das Sicherheitsprotokoll wie folgt:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
Lesen Sie diese Links für weitere Details:
system.net.servicepointmanager.securityprotocol auf MSDN
Sicherheitsprotokollaufzählung auf MSDN
Sie könnten Sie in die richtige Richtung weisen, wenn Sie Glück haben:)
Tags und Links .net c# ssl httpwebrequest