/ / Warum .Net WebClient kann HTTPS ohne Konfiguration verwenden, während Java HttpClient nicht kann - Java,

Warum .Net WebClient kann HTTPS ohne Konfiguration verwenden, während Java HttpClient nicht kann - Java, .net, https, Webclient, Apache-httpclient-4.x

Seien Sie nicht überrascht, aber meine Frage ist nicht, dass etwas nicht funktioniert: Warum kann der .Net WebClient HTTPS sofort ohne Konfiguration verwenden?

Ich würde nicht fragen, ob ich nicht einige ernsthafte Gründe hätte zu denken, dass das nicht der Fall sein sollte: In der Tat habe ich den Apache HttpClient verwendet, um genau die gleiche Operation, einen POST über HTTPS, zu machen, aber es beschwerte sich.

Was den HttpClient störte, war die Tatsache, dassServer-TLS-Zertifikat war nicht bekannt. Es ist eine berechtigte Beschwerde, also habe ich das Zertifikat zu dem JRE-Zertifikatsspeicher hinzugefügt, den ich verwendet habe, und danach hat alles wie erwartet funktioniert.

Zuerst könnten Sie einen schrecklichen Zweifel beseitigen: Der WebClient verwendet HTTPS korrekt und wenn ich versuche, eine Verbindung zu "https://downloadspywaresandmalwares.com"Es sollte mich mit etwas zurückweisen wie" bist du verrückt Typ, das ist kein vertrauenswürdiger Ort! "?

Ich denke, das hat mit dem Auseinanderlaufen zu tunSicherheitsrichtlinien von .Net und Java: Vielleicht ist Java mit einem eigenen Satz von Zertifikaten und Autoritäten gebündelt, während .Net eher in das Betriebssystem integriert ist, das möglicherweise eine größere Anzahl vertrauenswürdiger Zertifikate besitzt.

Wie könnte ich all diese Annahmen überprüfen?

Wenn es eine Bedeutung haben kann: Ich habe die Website von Chrome verwendet, aber nie von IE, sodass der WebClient keine IE-Konfiguration verwendet.

Danke für jede Eingabe. :)

Antworten:

1 für die Antwort № 1

Ok ich denke, ich habe es endlich verstanden:

  • wie ich vermutet habe .Net verfügt nicht über einen eigenen Zertifikatspeicher, sondern über den Betriebssystemspeicher
  • Ich habe es geschafft, das Zertifikat zu finden und zu löschen, aber das ist nicht einfach, weil Windows kämpft, um einige Zertifikate zu erhalten in seinem Laden
  • einmal gelöscht, wie erwartet, der WebClient ist gebrochen und beschwert sich, weil es "Vertrauensstellung für den sicheren SSL / TLS-Kanal konnte nicht hergestellt werden"
  • also ja die Der WebClient verwendet korrekt SSL, Das ist eine Erleichterung :)

Hoffentlich wird diese Information für jemand anderen nützlich sein ...