PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [Java] HTTPS Webseite abfragen, komische Exception..


wry
2007-03-30, 15:31:27
Hi,

versuche gerade mittels Java URLReader.java (http://java.sun.com/j2se/1.5.0/docs/guide/security/jsse/samples/urls/URLReader.java) eine Webseite mittels HTTPS abzufragen, aber ich bekomm immer eine Exception, aus der ich nicht ganz schlau werden. Hab jetzt ne Weile danach gegoogelt und nichts gescheites darüber gefunden. Kenn mich mit dem SSL/TLS auch nicht so gut aus, vielleicht kann mir da jemand von euch helfen?

Die Exception die ich bekomme:

PS C:\Dokumente und Einstellungen\me\Desktop\java> java URLReader
Exception in thread "main" javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path
idation failed: java.security.cert.CertPathValidatorException: Path does not chain with any of the trust anchors

Ist das Zertifikat des Servers vielleicht nicht in Ordnung?

HellHorse
2007-03-30, 17:24:04
Ist das Zertifikat des Servers vielleicht nicht in Ordnung?
Kannst du leicht selbst prüfen, öffne die URL im Browser und schau ob du eine Sicherheitswarnung kriegst.

Im allgeimenen sind die URL und HTTP implementation von Sun nicht so der Hammer und commons-http-client könnte besser geignet sein.

wry
2007-03-30, 18:17:46
Kannst du leicht selbst prüfen, öffne die URL im Browser und schau ob du eine Sicherheitswarnung kriegst.

Weder IE noch Opera geben einen Warnhinweise. IE sagt sogar dass es gültig ist.

Hab gerade diesen Jakarta commons-http-client ausprobiert, aber leider wirft das Tutorialprogramm die selbe Exception, es scheint als würde dieser Client auf Teile des sun Clienten aufbauen.

Ich glaube aber, da muss etwas am Server nicht stimmen, denn andere HTTPS-Seiten kann ich ohne Probleme abrufen. Seltsame Sache aber trotzdem danke für deine Hilfe.

Köppchen
2007-03-30, 19:59:53
Die Meldung bedeutet das Zertifikat des Servers kann nicht von deinem Programm bestätigt werden. Es gibt keine gültige Zertifikatskette für den Server .
Wenn ich das richtig in erinnerung habe kannst du mit dem Keytool eigene Einträge zum Zertifikatsspeicher hinzufügen. Bin aber nicht so sicher, habe lange keine Zertifikate mehr importiert.

wry
2007-03-30, 21:03:40
@Köppchen
Aha ok, werde mal in die Richtung weitergoogeln, mal sehen ob ichs hinbekomme.
Danke für den Tipp! :smile:

Edit:
Hab jetzt die Zertifikate mit dem Keytool importiert und es funktioniert jetzt, danke nochmal für eure Hilfe!

wry
2007-03-31, 22:09:31
So und schon wieder hab ich ein Problem.. :frown:

Ich rufe am Server eine .php Datei ab, allerdings sind im Datenteil der HTTP Response lauter seltsame Zeilen mit eigenartigen Zeichen enthalten. Meine erste Annahme war, dass eventuell die Zeichencodierung in meinem Programm nicht ok ist, aber sie ist die selbe wie im HTTP Response Header.
Meine Frage: Warum liefert mir der Server diese Zeichen mit?

Auszug aus der Antwort vom Server:
</tr>

29
<tr>
<td valign="top" colspan="5" class="
7
message
e
"><div><br />

7
<br />

24
<br />

Gast
2007-03-31, 22:57:53
Siehe 3.6.1 Chunked Transfer Coding im HTTP/1.1 RFC.

wry
2007-03-31, 23:35:20
@Gast
Danke! Werd mir den RFC Teil gleich durchlesen.

Edit:
Hat jetzt eine HTTP/1.0 Get Anfrage draus gemacht, das erleichtert mir das parsen. Thx nochmal! :smile: