Zugriff auf HTTPS-verschlüsselte Websites mit WebRequest
Problem:
In einem Programm, das Inhalte abruft Von vom Benutzer bereitgestellten URLs schlägt ein Versuch, auf HTTPS-verschlüsselte Inhalte zuzugreifen, fehl, was zu einer Fehlermeldung führt Fehler.
Lösung:
Das Problem ergibt sich aus dem Standardverhalten von WebRequest, das SSL-Zertifikate validiert und Verbindungen zu Websites mit ungültigen Zertifikaten ablehnt. Damit Ihr Code unabhängig von der Gültigkeit des Zertifikats auf HTTPS-verschlüsselte Inhalte zugreifen kann, können Sie die Zertifikatsvalidierung deaktivieren, indem Sie den folgenden Code verwenden, bevor Sie die Webanfrage stellen:
ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(AcceptAllCertifications);
Definition von AcceptAllCertifications:
Die AcceptAllCertifications-Methode ist wie folgt definiert:
public bool AcceptAllCertifications(object sender, System.Security.Cryptography.X509Certificates.X509Certificate certification, System.Security.Cryptography.X509Certificates.X509Chain chain, System.Net.Security.SslPolicyErrors sslPolicyErrors) { return true; }
Durch diese Einstellung Rückruf weisen Sie WebRequest an, alle Zertifizierungen zu akzeptieren, wodurch die Zertifikatsvalidierung effektiv deaktiviert wird. Dadurch kann Ihr Programm auch dann auf HTTPS-verschlüsselte Inhalte zugreifen, wenn die Zertifizierungen ungültig sind.
Das obige ist der detaillierte Inhalt vonWie kann ich mit WebRequest auf HTTPS-Sites mit ungültigen Zertifikaten zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!