Überprüfen Sie den remote-SSL-Zertifikat bei HTTPS-request

Als machen HTTPS-Anforderung an den remote-server, ich benutze WebRequest, das schafft eine sichere Verbindung mit remote-web-server. Während der Entwicklung habe ich selbst-signiertes Zertifikat auf dem server, und WebRequest scheitert eine sichere Verbindung, da die cert nicht gültig ist, das ist das erwartete Verhalten.

Habe ich gefunden, dass dieser code "Fernbedienungen" cert überprüfen Sie, aktiviert durch den Aufruf SetCertificatePolicy() - Methode im folgenden code.

public static void SetCertificatePolicy()
{
    ServicePointManager.ServerCertificateValidationCallback
                += RemoteCertificateValidate;
}

///<summary>
///Remotes the certificate validate.
///</summary>
private static bool RemoteCertificateValidate(
    object sender, X509Certificate cert,
    X509Chain chain, SslPolicyErrors error)
{
    //trust any certificate!!!
    System.Console.WriteLine("Warning, trust any certificate");
    return true;
}

Frage ich mich, ob es möglich ist, spezielle überprüfungen auf remote-SSL-cert (mit obigen code, zum Beispiel), so dass ich überprüfen kann, dass die remote-web-server mit gültigen SSL-cert, und nicht nur alle gültigen cert, aber genau die, die ich will? Zum Beispiel möchte ich sicherstellen, dass ich im Gespräch bin www.someplace.com website, cert ausgestellt ACME Inc, mit Fingerabdruck 00:11:22:.....

Was ist ein "best practice" - Ansatz für dieses Szenario?

Dank!

InformationsquelleAutor mr.b | 2010-06-23
Schreibe einen Kommentar