Originariamente inviato da tony83
Sto cercando di fare una connessione SSL con Socket Java.
Ma ho il seguente problema

Scrivo il codice incriminato:

codice:
//Carico il Key Store
			objKeyStore.load(new FileInputStream(certificato_kst), arrpassword);		

			//Carico Trust Store
			objKeyManagerFactory.init(objKeyStore, arrPassword_kst);	

			// Trust Store
			MakeKeyStore objMakeTrustStore = new MakeKeyStore();
			KeyStore objTrustStore = objMakeTrustStore.getKeyStore();

			// Carico il Trust Store
			objTrustStore.load(new FileInputStream(certificato_kst), arrPassword_tru);

			// Trust Manager
			MakeTrustManagerFactory objMakeTrustManagerFactory = new MakeTrustManagerFactory();
			TrustManagerFactory objTrustManagerFactory = objMakeTrustManagerFactory.getTrustManagerFactory();

			objTrustManagerFactory.init(objTrustStore);

			objSSLContext.init(objKeyManagerFactory.getKeyManagers(), objTrustManagerFactory.getTrustManagers(), null);
			objSSLSocketFactory = objSSLContext.getSocketFactory();

			echoSocket =(SSLSocket)objSSLSocketFactory.createSocket("10.16.10.9", 4000);


echoSocket.setSoTimeout(timeout);
			
			alServer          = new PrintWriter(echoSocket.getOutputStream(), true);
			dalServer         = new BufferedReader(new InputStreamReader(echoSocket.getInputStream()));


			response="";
			
						
			/*
			String messaggioDalServer   = "";

			while(messaggioDalServer != null && !messaggioDalServer.trim().equals("")) 
			{
				messaggioDalServer = dalServer.readLine();
				System.out.println(messaggio);
				if(messaggioDalServer != null && !messaggioDalServer.trim().equals(""))
				{
					messaggioDalServer = objBufferedReader.readLine();
				}
			}
			*/
			System.out.println("--- PRIMA DI FARE alServer.print(messaggio) ");
			alServer.print(messaggio);
			System.out.println("--- DOPO alServer.print(messaggio) ");
			alServer.flush();
			System.out.println("--- HO FATTO ANCHE alServer.flush() ");
			char[] b= new char [2000];
			System.out.println(" --- PRIMA DI FARE dalServer.read(b) ---");
			dalServer.read(b);
			System.out.println(" --- DOPO dalServer.read(b) ---");
			for (int i=0;i<b.length;i++)
			{
				System.out.println(" --- Sto nel ciclo ---");
				if (b[i]!=0)response+=b[i]; 
			}
			System.out.println(" --- DOPO IL CICLO ---");
			System.out.println(response);
			// close();
		}
		catch(Exception e)
		{
			System.out.println("Errore Socket");
			e.printStackTrace();
		}

Ecco l'errore:

codice:
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.checkEOF(Unknown Source)
	at com.sun.net.ssl.internal.ssl.AppInputStream.read(Unknown Source)
	at sun.nio.cs.StreamDecoder.readBytes(Unknown Source)
	at sun.nio.cs.StreamDecoder.implRead(Unknown Source)
	at sun.nio.cs.StreamDecoder.read(Unknown Source)
	at java.io.InputStreamReader.read(Unknown Source)
	at java.io.BufferedReader.fill(Unknown Source)
	at java.io.BufferedReader.read1(Unknown Source)
	at java.io.BufferedReader.read(Unknown Source)
	at java.io.Reader.read(Unknown Source)
	at ssl.client.SSLClientAction.pincoPalloSocketNonProtetto(SSLClientAction.java:536)
it.pincoPallo.main(BatchCreazioneNuovePolizzeArag.java:809)
Caused by: javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
	at com.sun.net.ssl.internal.ssl.InputRecord.handleUnknownRecord(Unknown Source)
	at com.sun.net.ssl.internal.ssl.InputRecord.read(Unknown Source)
	at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(Unknown Source)
	at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
	at com.sun.net.ssl.internal.ssl.SSLSocketImpl.writeRecord(Unknown Source)
	at com.sun.net.ssl.internal.ssl.AppOutputStream.write(Unknown Source)
	at sun.nio.cs.StreamEncoder.writeBytes(Unknown Source)
	at sun.nio.cs.StreamEncoder.implFlushBuffer(Unknown Source)
	at sun.nio.cs.StreamEncoder.implFlush(Unknown Source)
	at sun.nio.cs.StreamEncoder.flush(Unknown Source)
	at java.io.OutputStreamWriter.flush(Unknown Source)
	at java.io.BufferedWriter.flush(Unknown Source)
	at java.io.PrintWriter.flush(Unknown Source)
	at ssl.client.SSLClientAction.miometodo(SSLClientAction.java:532)
	... 3 more
GRAZIE Anticipatamente

PS. L'errore è scatenato da questa riga: dalServer.read(b);
javax.net.ssl.SSLException: Connection has been shutdown: javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.checkEO F(Unknown Source)
at com.sun.net.ssl.internal.ssl.AppInputStream.read(U nknown Source)
at sun.nio.cs.StreamDecoder.readBytes(Unknown Source)
at sun.nio.cs.StreamDecoder.implRead(Unknown Source)
at sun.nio.cs.StreamDecoder.read(Unknown Source)
at java.io.InputStreamReader.read(Unknown Source)
at java.io.BufferedReader.fill(Unknown Source)
at java.io.BufferedReader.read1(Unknown Source)
at java.io.BufferedReader.read(Unknown Source)
at java.io.Reader.read(Unknown Source)
at ssl.client.SSLClientAction.aragSocketNonProtetto(S SLClientAction.java:536)
at it.pincoPallo.miaClasse.unsafeRunTask(miaClasse.ja va:640)
at it.pincoPallo.miaClasse.runTask(miaClasse.java:162 )
at it.pincoPallo.miaClasse.main(miaClasse.java:809)
Caused by: javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRec ord(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.perform InitialHandshake(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.writeRe cord(Unknown Source)
at com.sun.net.ssl.internal.ssl.AppOutputStream.write (Unknown Source)
at sun.nio.cs.StreamEncoder.writeBytes(Unknown Source)
at sun.nio.cs.StreamEncoder.implFlushBuffer(Unknown Source)
at sun.nio.cs.StreamEncoder.implFlush(Unknown Source)
at sun.nio.cs.StreamEncoder.flush(Unknown Source)
at java.io.OutputStreamWriter.flush(Unknown Source)
at java.io.BufferedWriter.flush(Unknown Source)
at java.io.PrintWriter.flush(Unknown Source)
at ssl.client.SSLClientAction.mioMetodo(SSLClientActi on.java:532)
... 3 more
Caused by: java.io.EOFException: SSL peer shut down incorrectly
at com.sun.net.ssl.internal.ssl.InputRecord.read(Unkn own Source)
... 15 more