Skip to Main Content

Java Security

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Client certificate is not send

843811Jul 11 2006 — edited Jul 11 2006
Hi
I have not much experience in Java, so thank you in advance for your help.
I have some piece of client code which setup the secure connection. Everything works fine until I use server authentication (in my certificate store I have trusted CA certificate and client certificate signed by this trusted CA). In mutual authentication handshake fails, because the cliend doesn't send any certificate (i checked it using network sniffer). I was looking for the way of enumerate the local certificates which are going to be send from client, but I can't understand how should I do it. There is my code below :
 
	System.setProperty("-Djavax.net.ssl.trustStore","G:/Program Files/Java/jre1.5.0_07/lib/security/cacerts".replace('/', File.separatorChar));
	System.setProperty("-Djavax.net.ssl.trustStorePassword","changeit");
	System.setProperty("-Djavax.net.debug","all");
	int port = 16993;
   String hostname = "10.10.1.11";
    SSLSocketFactory factory = null;
    SSLSocket socket = null;
    SSLSession session = null;
    String[] proto = new String[1];
    String[] ciphe = new String[1];
    String[] all_ciphe_supp = new String[33];
    
    System.out.println("Cipher Suite and Protocols test");

            
  try {
		    	
        factory = HttpsURLConnection.getDefaultSSLSocketFactory();
		        
		    } catch (Exception e) {
	    		System.out.println( e.toString());
	    	}

		    if (factory != null) {
		    
	        // Connect to the server
		    	try {
		    		socket = (SSLSocket)factory.createSocket(hostname,port);
		    		
		    		all_ciphe_supp = socket.getSupportedCipherSuites();
		    		System.out.println("All ciphersuites and protocol supported");
		    		socket.startHandshake();
		    		session = socket.getSession();
		    		System.out.println("Connection established using " + session.getProtocol() + " and " + session.getCipherSuite());
		    		socket.close();
		    	} catch (SSLPeerUnverifiedException e) {
			    	System.out.println("Connection not established : " + e.toString());
			    } catch (IOException e) {
			    	System.out.println("Connection not established : " + e.toString());
			    } 
}
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Aug 8 2006
Added on Jul 11 2006
5 comments
405 views