xml via SSL über Proxy

Status
Nicht offen für weitere Antworten.

Robt

Mitglied
Hallo zusammen,

ich renn von einer Sackgasse in die Nächste, obwohl die Lösung so verdammt Nahe liegen müsste. Ich habe mich schon fast zu Tode gegoogelt, aber irgendwie will es nicht funktionieren.
Ziel ist es einen OutputStream per POST-Aufruf über eine SSL Verbindung zu schicken und eine Antwort in Form eines InputStream zu erhalten. Um ins Internet zu kommen, muss ich über einen Proxy gehen.
Die "andere" Seite hat kein eigenes Zertifikat, so wurde mir gesagt.

Ich möchte nicht unbedingt Code haben, sondern einfach die Schritte wie ich daran gehen muss. Quasi zu erst muss ich mich um den keystore kümmern .. etc.... Bei keystores auch gerne etwas ausführlicher :?

Über eine ungesicherte Verbindung habe ich das Ganze schon realisiert, da habe ich eine HttpURLConnection verwendet und es funktioniert einwandfrei. Aber das SSL raubt mir den letzten Versand.

Vielen Dank für eure hoffentlich zielweisenden Beiträge.


Viele Grüße
Robt
 
G

Guest

Gast
Hi,

zu dem Zertifikat:
Der Empfänger MUSS ein Zertifikat haben (Server mit dem du kommunizierst).
Dies kann auch selbst-erstellt und selbst-unterschrieben sein - zum Test reicht das völlig.
Welche Archtiektur hat den der Server (Tomcat ?)

Beim Tomcat ein Zertifikat einzurichten ist recht simpel:

Befehle / Übersicht "keytool"
http://java.sun.com/j2se/1.3/docs/tooldocs/win32/keytool.html

Wir haben uns selbst eine kleine Anleitung geschrieben, weil es oft zu Missverständnissen bei der Verwendung kommt, hilft ja vielleicht:

4 Schritte für SSL im Tomcat.

Erstellen des Request Key’s (Wird für die Bestellung benötigt. Fingerprint des Servers)
Achtung: CN -> Domain die genutzt werden soll.
Beispiel:
1) Server: Erstellung Request Key’s
C:\Program Files\Java\j2re1.4.2_03\bin>keytool -genkey -v -keyalg RSA -alias tomcat -keypass -storepass

Wie lautet Ihr Vor- und Nachname? www.meineseite.de
Wie lautet der Name Ihrer organisatorischen Einheit? MeineFirma
Wie lautet der Name Ihrer Organisation? Firma GmbH
Wie lautet der Name Ihrer Stadt oder Gemeinde? Musterstadt
Wie lautet der Name Ihres Bundeslandes oder Ihrer Provinz? NRW
Wie lautet der Landescode (zwei Buchstaben) f³r diese Einheit? DE

Ist CN=www.meineseite.de, OU=MeineFirma, O=Firma GmbH, L=Musterstadt, ST=NRW, C=DE richtig?: j

DOS:
Erzeuge 1.024-Bit RSA Schl³sselpaar und selbst signiertes Zertifikat (MD5WithRSA) für:
CN=www.meineseite.de, OU=MeineFirma, O=Firma GmbH, L=Musterstadt, ST=NRW, C=DE

Falls nicht angegeben wird der keystore an folgender Stelle abgelget:
C:\Documents and Settings\Administrator\.keystore wird gespeichert.
2) Speichern des Request Key’s!
Dos:

keytool -certreq -keyalg RSA -alias tomcat -file certreq.csr

Dieser Request (Anfrage) muss nun unterschrieben werden, entweder selbst mit dem Keytool oder von einem Zertifkats-Aussteller (verisign, o.ä,)
Als antwort erhalten wir 2/3 Dateien:

* Root Certificate
* Intermediate Certificate
* Server Certificate

3) Importieren der 3 Zertifikate:

* Root Certificate
* Intermediate Certificate
* Server Certificate

Beispiel (DOS):
root:

keytool -import -trustcacerts -alias root -file "C:/keystore/root.crt" -keystore "C:/keystore/.keystore"

interme:

keytool -import -trustcacerts -alias INTER -file "C:/keystore/intermediate.crt" -keystore "C:/keystore/.keystore"

main:

keytool -import -trustcacerts -alias tomcat -file "C:/keystore/www.domain.de.cer" -keystore "C:/keystore/.keystore"

(Certificat-Response kann auch mit '.crt' enden, die Datei '*.csr' wird nicht gebraucht)

4)Server.XML
Server.xml des Tomcats anpassen (Beispiel):

<Connector
classname="org.apache.coyote.tomcat4.CoyoteConnector"
port="443"
maxThreads="150"
minSpareThreads="25"
maxSpareThreads="75"
enableLookups="false"
disableUploadTimeout="true"
acceptCount="100"
debug="0"
scheme="https"
secure="true"
clientAuth="false"
sslProtocol="TLS"
keystorePass="kundessl"/>

optional if ".keystore" is not in default directory (user-home-directory) of the user tomcat is running as:

[...]keystoreFile="c:\tomcat5\ssl\.keystore"[...]


du solltest dann per Browser testen, ob das mit SSL geht.

Wenn du dann per JAVA Daten austauschen willst, würde ich u.U. den HttpClient von Apache Commons (3.1 oder höher) nehmen, der hat eigentlich alles drin, was man braucht.
Selbst habe ich das nicht getestet, aber der sollte alles unterstützen.
 

Niki

Top Contributor
Ich hab vor kurzem einen WebService Client über SSL und Proxy realisieren müssen. Proxy ist ganz einfach, du brauchst nur folgende System-Properties hinzufügen:
Code:
System.getProperties().put("http.proxyPort", "3128"); //Standard
System.getProperties().put("http.proxyHost", "proxy-host");
System.getProperties().put("http.proxySet", "true");

Für die SSL Verbindung habe ich mir ein jks-File mittels portecle erstellt. Das ist ganz einfach. Einfach das Server-Zertifikat importieren und dann das jks-File generieren lassen. Das jks-File kann man dann am Client so einbinden:
Code:
InputStream is = new FileInputStream(new File("cert", "mein-zert.jks"));
KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
keyStore.load(is, "passwort".toCharArray());
is.close();

Das hat auf Anhieb funktioniert.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J FTP Upload über Proxy funktioniert nicht Netzwerkprogrammierung 1
J FTP FTP Zugriff über Proxy Server Netzwerkprogrammierung 1
M ganymed-ssh2.har: ftp-Verbindung über ftp-Proxy Netzwerkprogrammierung 2
A UCP Connection über Proxy möglich? Netzwerkprogrammierung 7
M FTP-Connection über FTP-Proxy Netzwerkprogrammierung 20
M Verbindung über Proxy// Problem mit Outputstream bei URLConn Netzwerkprogrammierung 5
S URLConnection über Proxy Netzwerkprogrammierung 4
G HTTP Client :: Komme nicht über den Proxy Netzwerkprogrammierung 7
B Url aufruf über Proxy Netzwerkprogrammierung 2
I Fehlermeldung bei Verbindung über SOCKS Proxy Netzwerkprogrammierung 4
K Tabelle im Web über Listener aufrufen Netzwerkprogrammierung 1
F Verbindung zu einem LDAP Server über Java Netzwerkprogrammierung 4
S Socket Bilder über Socket Senden Netzwerkprogrammierung 0
B Zip Dateien über FTP laden Netzwerkprogrammierung 2
x46 byte[] über BufferedReader auslesen Netzwerkprogrammierung 18
E Socket Parameter über Sockets übergeben und auslesen ! Netzwerkprogrammierung 5
L Webbasierte Anwendung - Authentifizierung über LDAP/ActiveDirectory Netzwerkprogrammierung 5
J Probleme mit Multicast über IPv6, DatagramChannel Netzwerkprogrammierung 1
S Daten über TCP/IP senden Netzwerkprogrammierung 3
T Broadcast-message über spez. Netzwerk-Schnittstelle Netzwerkprogrammierung 1
T Mikrofonaudio über Java Server an Webbrowser streamen Netzwerkprogrammierung 13
M Erstelltes Programm über Internet Browser ausführen Netzwerkprogrammierung 26
T VPN-Verbindung über Java Netzwerkprogrammierung 4
V Einfachen Javaserver über das Internet erreichbar machen Netzwerkprogrammierung 2
E Kurze Textnachrichten über einen Server von meinem Handy auf den Computer laden. Netzwerkprogrammierung 9
Thallius Java Application über ZScaler benutzer? Netzwerkprogrammierung 0
J Chat Server starten über GUI problem Netzwerkprogrammierung 4
V einfaches hin und her von Text über Server Netzwerkprogrammierung 2
P RMI Client Server Programm über Internet Netzwerkprogrammierung 2
antonbracke Multiuser Software über XMPP Server Netzwerkprogrammierung 1
Z Verbindung zwischen 2 Rechnern über ServerSockets nicht möglich Netzwerkprogrammierung 3
cezary Socket ServerSocket starten über GUIIm unterstehenden Code versuche Netzwerkprogrammierung 6
I ASCII über serielle Schnittstelle Netzwerkprogrammierung 1
N RMI "RMI über Lan funktioniert nicht" & "RMI-Server im Lan scannen" Netzwerkprogrammierung 13
L Mit Java über PHP in MySQL anmelden (Login script) Netzwerkprogrammierung 3
M Socket String Arrays über Socket an Server schicken Netzwerkprogrammierung 2
T Socket Methoden über Internet aufrufen Netzwerkprogrammierung 1
S Socket Kommunikation über Internet Netzwerkprogrammierung 1
X Problem mit vielen Bytes über Socket Netzwerkprogrammierung 23
K ByteArray über Netzwerk senden klappt nicht Netzwerkprogrammierung 5
M allgemeine Frage über Server-Client-Kommunikation Netzwerkprogrammierung 5
P RMI Threads die über RMI auf Datenbank zugreifen Netzwerkprogrammierung 2
S Datei schreiben über Applet Netzwerkprogrammierung 8
G Klassen über Netzwerk kommunizieren lassen Netzwerkprogrammierung 6
J Erster Server-Client läuft auf lokalem Rechner problemlos. Zwei Rechner über das Internet nicht Netzwerkprogrammierung 8
Kjubert Synchronisieren von Objekten über Client/Server - bester Weg? Netzwerkprogrammierung 7
S ImageIcon über Socket schicken (Serialisierung) Netzwerkprogrammierung 6
H Socket Objekte über Socket? Allgemeine Verständnisprobleme in Sachen Socket Netzwerkprogrammierung 3
S Seltsames Verhalten beim Empfangen von Daten über DataInputStream Netzwerkprogrammierung 12
A TCP über UDP Verbindung? Netzwerkprogrammierung 10
C Datei über Socket schreiben und Ereignis lesen Netzwerkprogrammierung 9
D Socket Class über Netzwerk verschicken Netzwerkprogrammierung 2
D JNLP über Webstart funktioniert nicht... Netzwerkprogrammierung 2
J Socket Dateien über Socket auf Server speichern Netzwerkprogrammierung 3
D Socket Datei nur stückweise über Socket verschicken Netzwerkprogrammierung 6
G Bild über Socket schicken - Client/Server Netzwerkprogrammierung 10
A Computer über Internet verbinden Netzwerkprogrammierung 12
N über Java in eine Text-Datei auf einem Server schreiben Netzwerkprogrammierung 2
c_sidi90 ideale Lösung, Screen Capture über Netzwerk Netzwerkprogrammierung 3
S Socket Verschiedene Exceptions beim Übertragen von Bildern über Socket Netzwerkprogrammierung 20
T ArrayList über Netzwerk senden! Netzwerkprogrammierung 5
N Problem über http eine Datei zu senden Netzwerkprogrammierung 4
T Verbindungsversuche über TCP Sockets von mehreren Threads führt zu Serverabsturz Netzwerkprogrammierung 2
V Authentifikation über mehrere Server? Netzwerkprogrammierung 3
C Verbindung zu einem Hostrechner über das Internet herstellen Netzwerkprogrammierung 15
M Map über Webservice übertragen Netzwerkprogrammierung 3
D Mehrere Clients über Java-Sockets Netzwerkprogrammierung 13
P Socket Verbindung über das Internet Netzwerkprogrammierung 2
Z Socket Connection reset by peer nur per IP nicht über localhost Netzwerkprogrammierung 13
ruffio1978 Telnet über ein socket ansprechen Netzwerkprogrammierung 8
F Socket Verbindungen über mehrere Server Netzwerkprogrammierung 4
U Datei über das Netzwerk einlesen und speichern Netzwerkprogrammierung 8
G Klassen über JMX per URLClassloader laden? Netzwerkprogrammierung 2
E Zwei PCs über das Internet miteinander verbinden? Netzwerkprogrammierung 3
E Socketverbindung über das Internet - Timeout? Netzwerkprogrammierung 28
M Socket Bilder über das Netzwerk übertragen Netzwerkprogrammierung 4
E Java über Socket ins Internet? Netzwerkprogrammierung 4
F Socket Daten über verschiedene IP's schicken Netzwerkprogrammierung 5
M Socket JavaProg über einen Clienten steuern Netzwerkprogrammierung 5
M Mail über Exchange versenden Netzwerkprogrammierung 13
F C/S über HTTPS Netzwerkprogrammierung 2
D ...class.getResourceAsStream("/meine.properties") funktioniert nicht über RMI? Netzwerkprogrammierung 3
J Probleme bei RSA mit byte[] bei Versand über RMI Netzwerkprogrammierung 2
Z File über Socket lesen Netzwerkprogrammierung 3
A HTTP Binärdaten über PHP-Skript in Datenbank schreiben bzw auslesen Netzwerkprogrammierung 2
M Objekt über Object-Stream, empfange "alte" Daten Netzwerkprogrammierung 2
P FTP isFile() über FTP Netzwerkprogrammierung 3
I Socket HTTP Nachrichten über Sockets verschicken Netzwerkprogrammierung 2
N String als byte Array über Socket versenden Netzwerkprogrammierung 8
M Objekt über socket senden/empfangen Netzwerkprogrammierung 3
N Socket File über Socket vom Server an Client versenden Netzwerkprogrammierung 15
P Socket Problem mit Netzwerkverbindung über TCP Netzwerkprogrammierung 12
V Verbindung zweier Rechner über das Internet mit Sockets Netzwerkprogrammierung 8
F Char über Netzwerk senden Netzwerkprogrammierung 6
S HTTP Login mit CAS Authentisierung über SSL Netzwerkprogrammierung 2
C Befehle über ein GUI an Server senden Netzwerkprogrammierung 15
M Socket Datei über Socket versenden Netzwerkprogrammierung 5
I Objekte über das Netzwerk Netzwerkprogrammierung 5
M Google Translate über Java ansprechen? Netzwerkprogrammierung 13
F Socket ImageIcon über Socket --> Fehler Netzwerkprogrammierung 14

Ähnliche Java Themen

Neue Themen


Oben