Mehrere SSL Verbindungen

Status
Nicht offen für weitere Antworten.
G

Gast_Michael

Gast
Hi, ich schreibe eine Anwendung, in der ich mehrere gesicherte Verbindungen zu anderen Servern herstellen möchte. Mit einer habe ich kein Problem, dann erstelle ich eine SSLSocket- Verbindung, die über die System Properties javax.net.ssl.keyStore und trustStore.

Das Problem beginnt, wenn ich eine zweite, zu einem andern Server aufbauen möchte. Mein Testcode sieht folgendermassen aus (und klappt natürlich gar nicht):

Code:
System.setProperty("javax.net.ssl.keyStore", "c:/keystore1");
System.setProperty("javax.net.ssl.keyStorePassword", "123456");
System.setProperty("javax.net.ssl.trustStore", "c:/keystore1");
System.setProperty("javax.net.ssl.trustStorePassword", "123456");
SSLSocket s = (SSLSocket) SSLSocketFactory.getDefault().createSocket("server1", 1099);
s.startHandshake();
System.out.println("Handshake1 klappt");
			
System.setProperty("javax.net.ssl.keyStore", "c:/keystore2");
System.setProperty("javax.net.ssl.keyStorePassword", "tetappl");
System.setProperty("javax.net.ssl.trustStore", "c:/keystore2");
System.setProperty("javax.net.ssl.trustStorePassword", "tetappl");
s = (SSLSocket) SSLSocketFactory.getDefault().createSocket("server2", 636);
s.startHandshake();
System.out.println("Handshake klappt2");

Wie mache ichs besser?
 
G

Gast_Michael

Gast
Ich pusche die Frage noch mal hoch. Hat denn niemand ne Idee, wie man das macht? Von der Sache her glaube ich, dass ich mehrere SSLSocketFactorys erstellen muss, denen ich nur jeweils eigene Keystore-Files und Passwörter zuweisen muss, aber ich finde nirgends Infos dazu.
Wenn schon keine komplette Lösung, hat vielleicht jemand ein Suchbegriffe für mich?

Gruß Michael
 
G

Gast_Michael

Gast
An alle, die irgendwann mal hier reinstolpern und das selbe Problem haben:

Code:
import java.io.FileInputStream;
import java.io.IOException;
import java.security.KeyManagementException;
import java.security.KeyStore;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.UnrecoverableKeyException;
import java.security.cert.CertificateException;

import javax.net.ssl.KeyManagerFactory;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLServerSocketFactory;
import javax.net.ssl.SSLSocket;
import javax.net.ssl.SSLSocketFactory;
import javax.net.ssl.TrustManagerFactory;

public class SSLSocketFactoryCreator {
	SSLContext context;
	
	public SSLSocketFactoryCreator(String filename, String password)  throws KeyStoreException, NoSuchAlgorithmException, IOException, CertificateException, UnrecoverableKeyException, KeyManagementException
	{
    	KeyManagerFactory keystorefactory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
    	KeyStore keystore = KeyStore.getInstance("JKS");
    	keystore.load(new FileInputStream(filename), password.toCharArray());
    	keystorefactory.init(keystore, password.toCharArray());
    	
    	TrustManagerFactory trustmanagerfactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
    	trustmanagerfactory.init(keystore);
    	
    	context = SSLContext.getInstance("SSL");
    	context.init(keystorefactory.getKeyManagers(), trustmanagerfactory.getTrustManagers(), null);

	}
	
	public SSLSocketFactory getSSLSocketFactory()
	{
	   	return context.getSocketFactory();
	}
	
	public SSLServerSocketFactory getSSLServerSocket()
	{
		return context.getServerSocketFactory();
	}
	
	public static void main(String[] args) {
		try
		{
			SSLSocketFactoryCreator m = new SSLSocketFactoryCreator("c:/keystore1", "tetappl");
			SSLSocket s = (SSLSocket) m.getSSLSocketFactory().createSocket("server1", 636);
			s.startHandshake();
			
			SSLSocketFactoryCreator n = new SSLSocketFactoryCreator("c:/keystore2", "123456");
			SSLSocket t = (SSLSocket) n.getSSLSocketFactory().createSocket("server2", 1099);
			t.startHandshake();
		}
		catch(Exception e)
		{
			System.out.println(e);
		}
	}
}

Gruß Michael
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
izoards Mehrere TCP Verbindungen auf einen Server [alles Local] Netzwerkprogrammierung 2
7 Mehrere Verbindungen gleichzeitig in einem Thread mit ApacheHTTP Netzwerkprogrammierung 7
F Socket Verbindungen über mehrere Server Netzwerkprogrammierung 4
G Proxy und mehrere Verbindungen Netzwerkprogrammierung 4
TRunKX Ein Port mehrere Verbindungen? Netzwerkprogrammierung 7
U Einen HandlerThread, der mehrere Verbindungen verwaltet? Netzwerkprogrammierung 2
Aruetiise Socket Mehrere Clients Netzwerkprogrammierung 4
E Mehrere Sockets Netzwerkprogrammierung 2
C Mehrere Spielewelten im Multiplayer Netzwerkprogrammierung 2
J Framework mehrere Clients/ Server-Broadcast/oracle XE/ XML Netzwerkprogrammierung 1
V Server / mehrere Clients / MySQL / Konzept Netzwerkprogrammierung 2
S Server - Mehrere Klassen sollen Daten senden und empfangen Netzwerkprogrammierung 25
Creylon Socket Mehrere gleichzeitig eingehende Nachrichten Netzwerkprogrammierung 8
N SOCKET mehrere Requests, keep Alive serverspezifisch? Netzwerkprogrammierung 3
Z Socket [Chatprogramm] Mehrere Clients an einen Server Netzwerkprogrammierung 10
V Authentifikation über mehrere Server? Netzwerkprogrammierung 3
G Socket Mehrere Clientanmeldungen am Server Netzwerkprogrammierung 13
D Mehrere Clients über Java-Sockets Netzwerkprogrammierung 13
cedi Socket Mehrere Clients an einem Server Netzwerkprogrammierung 4
B SSH mit Jsch, mehrere Befehle senden Netzwerkprogrammierung 4
M Jetty Konfiguration mehrere Handler? Netzwerkprogrammierung 2
F UDP Server - mehrere Pakete auf einmal Netzwerkprogrammierung 12
A Mehrere gleich Packete behandeln Netzwerkprogrammierung 4
L Socket Chat Server für mehrere Clients Netzwerkprogrammierung 7
R mehrere MySQL-Zugriffe Netzwerkprogrammierung 3
B Paralleler Dateitransfer: Ein Client - Mehrere Sockets? Wie connecten? Netzwerkprogrammierung 16
S Mehrere Attachments mit JavaMail API auslesen Netzwerkprogrammierung 3
O Mehrere Datei per DataInput/OutputStream über Socket Netzwerkprogrammierung 12
A Datenverteilung: Mehrere Threads verwenden? Netzwerkprogrammierung 4
T Netzwerkchat Problem: Mehrere Nachrichten ~ Anfängerproblem Netzwerkprogrammierung 3
W Bestimmt IP Adresse verwenden wenn man mehrere hat Netzwerkprogrammierung 5
D Clients sollen mehrere Sessions starten Netzwerkprogrammierung 11
A Jakarta Commons HTTPClient: Mehrere Requests gleichzeitig Netzwerkprogrammierung 2
R Mehrere Dateien über einen Socket senden Netzwerkprogrammierung 2
G Nachricht an mehrere Clients schicken Netzwerkprogrammierung 10
L mehrere Streams über einen Socket? Netzwerkprogrammierung 8
V Mehrere Streams durch einen Stream senden Netzwerkprogrammierung 14
E Mehrere / bestimmte Netzwerkkarten ansteuern Netzwerkprogrammierung 10
F Mehrere Attachments mit JavaMail API Netzwerkprogrammierung 2
A Mit Client auf mehrere Server zugreifen Netzwerkprogrammierung 5
M Mehrere Ports gleichzeitig abhören Netzwerkprogrammierung 5
G Server an mehrere Clients Netzwerkprogrammierung 15
L JavaMail: Automatisches Email Versand (mehrere Empfänger) Netzwerkprogrammierung 4
X mehrere Request über eine HttpURLConnection Netzwerkprogrammierung 2
J Grundsätzliches zu SSL verschlüsselten Verbindungen Netzwerkprogrammierung 2
D Socket-Verbindungen übers Internet Netzwerkprogrammierung 4
I Offene Verbindungen lesen(Ressourcenmonitor lesen) Netzwerkprogrammierung 2
G FTP FTP-Client funktioniert nicht bei Modem-Verbindungen Netzwerkprogrammierung 8
N Java NIO eingehende und ausgehende Verbindungen mit einem Selector Netzwerkprogrammierung 12
S RMI Polling oder lange Verbindungen Netzwerkprogrammierung 6
M Socket Leistungsfähigkeit eines xSocketservers, wieviele Verbindungen max? Netzwerkprogrammierung 4
D Aktuelle Anzahl der verfügbaren TCP/IP Verbindungen Netzwerkprogrammierung 6
E TCP-Server soll viele offene Verbindungen verwalten Netzwerkprogrammierung 12
D Was für Verbindungen mit Socket möglich? Netzwerkprogrammierung 2
J Nacheinander Verbindungen eingehen Netzwerkprogrammierung 2
A persistente, multi-threaded Verbindungen Netzwerkprogrammierung 12
S Verbindungen der Browser ermitteln? Netzwerkprogrammierung 9
G Windows-Verbindungen Netzwerkprogrammierung 4
R Zuviele TCP-Verbindungen Netzwerkprogrammierung 4
F konfigurierte Netzwerkverbindunge/DFÜ-Verbindungen ermitteln Netzwerkprogrammierung 4
M Socket Verbindungen für einen Chat Netzwerkprogrammierung 10
D .jpg, .wav per ServerClient Verbindungen verschicken Netzwerkprogrammierung 8

Ähnliche Java Themen

Neue Themen


Oben