2016-08-31 1 views
0

Je lance un JNLP téléchargé à partir de mon application Web. Après avoir reçu une invite d'avertissement de sécurité Java, l'application peut s'exécuter correctement si la réponse de l'utilisateur est dans les 2 à 3 secondes. Cependant, si l'utilisateur a plus de 3 secondes pour répondre à l'invite d'avertissement de sécurité Java, l'application ne parvient pas à exécuter avec l'erreur à l'exception de la prise suivante:javax.net.ssl.SSLHandshakeException: Connexion à un hôte distant pendant la négociation

javax.net.ssl.SSLHandshakeException: Remote host closed connection during 

handshake 
    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:946) 
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake 

(SSLSocketImpl.java:1312) 
    at sun.security.ssl.SSLSocketImpl.startHandshake 

(SSLSocketImpl.java:1339) 
    at sun.security.ssl.SSLSocketImpl.startHandshake 

(SSLSocketImpl.java:1323) 
    at sun.net.www.protocol.https.HttpsClient.afterConnect 

(HttpsClient.java:563) 
    at 

sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect 

(AbstractDelegateHttpsURLConnection.java:185) 
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream 

(HttpURLConnection.java:1300) 
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream 

(HttpsURLConnectionImpl.java:254) 
    at com.sun.deploy.net.HttpUtils.followRedirects(Unknown Source) 
    at com.sun.deploy.net.BasicHttpRequest.doRequest(Unknown Source) 
    at com.sun.deploy.net.BasicHttpRequest.doGetRequestEX(Unknown Source) 
    at com.sun.deploy.cache.ResourceProviderImpl.checkUpdateAvailable 

(Unknown Source) 
    at com.sun.deploy.cache.ResourceProviderImpl.isUpdateAvailable(Unknown 

Source) 
    at com.sun.deploy.cache.ResourceProviderImpl.getResource(Unknown Source) 
    at com.sun.deploy.cache.ResourceProviderImpl.getResource(Unknown Source) 
    at com.sun.javaws.LaunchDownload$DownloadTask.call(Unknown Source) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:262) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker 

(ThreadPoolExecutor.java:1145) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run 

(ThreadPoolExecutor.java:615) 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: java.io.EOFException: SSL peer shut down incorrectly 
    at sun.security.ssl.InputRecord.read(InputRecord.java:482) 
    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:927) 
    ... 19 more 

Java Security Warning

Exception

supplémentaires Info: J'ai vérifié les ports et ils pointaient sur les numéros de port corrects et la valeur TLS correspondait également. Les certificats ont également été ajoutés sous cacerts. Question: Quelle est la cause de l'exception lorsque la réponse à l'invite de sécurité atteint plus de 3 à 5 secondes? et comment puis-je éviter l'exception mentionnée (peut-être augmenter le temps d'attente)? Actions effectuées: 1. Ajouter l'attribut connectionTimeout dans le connecteur Tomcat, mais après 5 secondes d'attente pour répondre à l'avertissement de sécurité Java, l'application ne parvient toujours pas à démarrer.

+0

S'il vous plaît vous envoyer config SSL trop –

Répondre

1

Cette propriété est plus facilement contrôlée par la propriété système https.protocols. C'est ainsi que vous pouvez contrôler ce que la méthode d'usine renvoie. Réglé sur "TLSv1" par exemple.

Cela entraîne des problèmes lorsque vous souhaitez utiliser deux protocoles au lieu d'un seul. Par exemple, SSLv3 et TLSv1. Ce -Dhttps.protocols = TLSv1, SSLv3 conduira à des exceptions si vous essayez de vous connecter soit SSLv3 ou TLSv1.

Veuillez cocher cette réponse. How to make Java 6, which fails SSL connection with "SSL peer shut down incorrectly", succeed like Java 7?

0

je faisais face au même problème, alors je suis passé de JRE1.7 à JRE1.8 bien sûr pour des raisons TLS1.2 More references