[Java] SSL/TLS Socket-Erstellung

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von SchOudeBläS, 18. April 2009 .

Schlagworte:
  1. 18. April 2009
    SSL/TLS Socket-Erstellung

    Hey,

    ich schreibe gerade an einer kleinen Client/Server-Anwendung. Die Übertragung soll mit Hilfe von SSL/TLS verschlüsselt werden. Ich habe mir 2 Funktionen gebaut, die mir das erstellen der Sockets übernehmen:

    Client:
    Code:
    private SSLSocket getSSLSocket(String host, int port) throws Exception { 
     KeyStore ts= KeyStore.getInstance("JKS"); 
     ts.load(new FileInputStream("truststore.jks"), "Passwort".toCharArray()); 
     TrustManagerFactory tmf = TrustManagerFactory.getInstance("SunX509"); 
     tmf.init(ts); 
     TrustManager[] tm= tmf.getTrustManagers(); 
     KeyManager[] km = null; 
     SSLContext ctx = SSLContext.getInstance("TLS"); 
     ctx.init(km, tm, null); 
     SSLSocketFactory ssf= ctx.getSocketFactory(); 
     SSLSocket sslSocket = (SSLSocket) ssf.createSocket(host, port); 
     return sslSocket; 
     }
    Server:
    Code:
    private SSLServerSocket getSSLServerSocket(int port, InetAddress ifAddress) throws Exception{ 
     KeyStore ks = KeyStore.getInstance("JKS"); 
     ks.load(new FileInputStream("serverKeystore.jks"), "Passwort".toCharArray()); 
     KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509"); 
     kmf.init(ks, "261452855a".toCharArray()); 
     KeyManager[] km = kmf.getKeyManagers(); 
     TrustManager[] tm= null; 
     SSLContext ctx = SSLContext.getInstance("TLS"); 
     ctx.init(km, tm, null); 
     SSLServerSocketFactory ssf = ctx.getServerSocketFactory(); 
     SSLServerSocket sslSocket = 
     (SSLServerSocket) ssf.createServerSocket(port, 0, ifAddress); 
     return sslSocket; 
     }
    Wenn ich jedoch jetzt eine Verbindung aufbaue bekomme ich beim Clienten die Exception: Connection Refused

    Am Server Zertifikat kanns nicht liegen, denn das funktioniert einwandfrei.

    Ich schätze der Fehler liegt am truststore.jks habe ich einfach das selbe Zertifikat wie beim Server genommen. Ist das so richtig oder wo kann sonst der Fehler liegen?

    Vielen Dank für eure Hilfe
     
  2. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.