bypass-ungültiges SSL-Zertifikat .net core
Ich bin an einem Projekt arbeiten, muss eine Verbindung zu einer https-Website. Jedes mal, wenn ich eine Verbindung herstellen, mein code wirft Ausnahme, weil das Zertifikat der Seite stammt aus nicht vertrauenswürdigen Website. Gibt es eine Möglichkeit, bypass-Zertifikat zu überprüfen .net core http?
Sah ich diesen code aus der vorherigen version .NET. Ich denke, ich brauche nur etwas wie dieses.
ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, sslPolicyErrors) => true;
Möglich, Duplikat der so dass nicht Vertrauenswürdige SSL-Zertifikate mit HttpClient
InformationsquelleAutor Ramppy Dumppy | 2016-07-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
ServicePointManager.ServerCertificateValidationCallback nicht unterstützt .Net Core.
Aktuellen situation ist, dass es ein
eine neue ServerCertificateCustomValidationcallback Methode für die kommende 4.1.* System.Net.Http Vertrag (HttpClient). .NET-Core-team sind der Fertigstellung der 4.1 Vertrag jetzt. Lesen Sie dazu in hier auf github
Können Sie versuchen, die pre-release-version des Systems.Net.Http 4.1 durch die Nutzung der Quellen direkt hier in CoreFx oder auf der MYGET-feed:
https://dotnet.myget.org/gallery/dotnet-core
Aktuellen WinHttpHandler.ServerCertificateCustomValidationcallback definition auf Github
InformationsquelleAutor Set
Können Sie überschreiben von SSL-cert-check auf einem HTTP-Aufruf mit dem eine anonyme callback-Funktion wie folgt
Darüber hinaus schlage ich einen factory-Muster für
HttpClient
denn es ist ein gemeinsames Objekt, die möglicherweise nicht sofort entsorgt werden und daher verbindungen geöffnet bleiben.HttpClient
Eigenschaft namensDangerousAcceptAnyServerCertificateValidator
bietet einen Weg, um diese Arbeit auf MacOSX. Mehr info hier - github.com/dotnet/corefx/pull/19908Mit diesem mit AWS Lambda .NET Core 1.0 korrigiert wurde was hindert mich daran, eine Verbindung mit einem internen HTTPS mit einem benutzerdefinierten root-CA-cert.
Alle
factory pattern
fürHttpClient
?Dies funktioniert auf .net-standard 2.0 auch! Dank
Dies funktioniert sehr gut auf .net-Core-2.2 . Dank
InformationsquelleAutor kdaveid
Kam hierher auf der Suche nach einer Antwort auf das gleiche problem, aber ich bin mit der WCF für NET Core. Wenn Sie im selben Boot, Verwendung:
Ich glaube schon, ja. Überprüfen Sie, ob eine aktualisierte Antwort anderswo, gibt es möglicherweise eine bessere Lösung, jetzt. Es ist schon ein Jahr. Ich denke, man könnte eine Unterklasse der authenticator, wenn nichts anderes. Und Nein, es gibt keine native Fabrik für HttpClient, dass ich weiß, off. Wenn Sie weitere Funktionen benötigen, schauen Sie auf RestClient.
InformationsquelleAutor Troels Larsen
Ich das Problem lösen mit:
Start.cs
YourService.cs
InformationsquelleAutor O.Machado
Ich sah aus das gleiche problem beim arbeiten mit self-signed certs und client-cert auth auf .NET Core 2.2 und Docker Linux-Containern. Alles hat gut funktioniert auf meinem dev Windows-Rechner, aber im Andockfenster bekam ich diesen Fehler:
Glücklicherweise das Zertifikat generiert wurde, mithilfe einer Kette.
Natürlich, Sie können immer ignorieren diese Lösung und verwenden Sie die oben genannten Lösungen.
So, hier ist meine Lösung:
Habe ich gespeichert das Zertifikat mit Chrome auf meinem computer in P7B - format.
Konvertieren-Zertifikat in PEM-format mit diesem Befehl:
openssl pkcs7 -inform DER -outform PEM -in <cert>.p7b -print_certs > ca_bundle.crt
Öffnen Sie die ca_bundle.crt-Datei und löschen Sie alle Unterliegen der Aufnahmen, so dass eine saubere Datei. Beispiel unten:
GetClientCertificate Methode:
InformationsquelleAutor DerSkythe
Dies ist eigentlich einfach
InformationsquelleAutor Sameh