javax.net.ssl.SSLException: Connection has been shutdown: javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshakeOriginariamente 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:
GRAZIE Anticipatamentecodice: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
PS. L'errore è scatenato da questa riga: dalServer.read(b);
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