Wenn ich eine HTTPS-Anfrage an den Remote-Webserver mache, verwende ich WebRequest, das eine sichere Verbindung mit dem Remote-Webserver herstellt. Während der Entwicklung verwende ich ein selbstsigniertes Zertifikat auf dem Server, und WebRequest kann keine sichere Verbindung herstellen, da das Zertifikat nicht gültig ist, was erwartetes Verhalten ist.Überprüfen Sie das Remote-SSL-Zertifikat während der HTTPS-Anforderung
Ich habe diesen Code gefunden, der "Remote" -Zertifikat prüft, aktiviert durch Aufruf der Methode SetCertificatePolicy()
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;
}
Ich frage mich, ob es möglich ist, spezielle Prüfungen auf Remote-SSL-Zertifikat zu tun (mit obigem Code, zum Beispiel), so dass ich, dass Remote-Web-Server gültiges SSL-Zertifikat verwendet überprüfen kann, und nicht nur irgendein gültiges Zertifikat, aber genau das, was ich will? Zum Beispiel möchte ich sicherstellen, dass ich mit www.someplace.com Website sprechen, ausgestellt auf ACME Inc, mit Fingerabdruck 00:11:22: .....
Was ist eine "Best Practice "Ansatz für dieses Szenario?
Danke!
Danke, das war was ich war eine Art von Informationen, die ich suche. Nur ein kurzes Q, über den ersten Hinweis (Vergleich der Cert-Daten mit Byte []) - muss ich das Byte-Array eines bekannten gültigen Cert mit dem vergleichen, das ich verifiziere? –
Ich denke, das Byte-Array wird das Zertifikat in der DER-Kodierung sein, also sollten Sie das wahrscheinlich mit Ihrem Referenzzertifikat im DER-Format vergleichen (viele Tools, einschließlich des Windows-Zertifikattools, können in dieses Format exportieren). Möglicherweise können Sie dies sogar direkt aus dem Zertifikatspeicher laden (nicht sicher, wie). – Bruno