2013-07-18 9 views
3

HTTPS 연결을 통해 애플릿이 제공 될 때 예외가 발생합니다.javax.net.ssl.SSLException : 서버가 부적절한 암호를 선택 SSL_RSA_WITH_DES_CBC_SHA

이 문제는 Java 1.7.0_25에서는 발생하지만 Java 1.6에서는 발생하지 않습니다.

자바 (http://docs.oracle.com/javase/1.5.0/docs/guide/security/jsse/JSSERefGuide.html#PLUG)가 지원하는 칩 수트를 보면 목록에 SSL_RSA_WITH_DES_CBC_SHA가 표시되어 있습니다.

이 오류가 발생 했습니까? 이 오류를 처리하려면 어떻게해야합니까?

Java Plug-in 10.25.2.15 
Using JRE version 1.7.0_25-b15 Java HotSpot(TM) 64-Bit Server VM 
User home directory = /home/mithat 
---------------------------------------------------- 
network: Cache entry not found [url: https://mytest.domain.tr/LoginWeb/myapplet.jar,  version: null] 
network: Connecting https://mytest.domain.tr/LoginWeb/myapplet.jar with proxy=DIRECT 
network: Connecting http://mytest.domain.tr:443/ with proxy=DIRECT 
javax.net.ssl.SSLException: Server selected improper ciphersuite SSL_RSA_WITH_DES_CBC_SHA 
    at sun.security.ssl.Alerts.getSSLException(Alerts.java:208) 
    at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1886) 
    at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:276) 
    at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:266) 
    at sun.security.ssl.ClientHandshaker.serverHello(ClientHandshaker.java:464) 
    at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:143) 
    at sun.security.ssl.Handshaker.processLoop(Handshaker.java:868) 
    at sun.security.ssl.Handshaker.process_record(Handshaker.java:804) 
    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1016) 
    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:515) 
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185) 
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:153) 
    at sun.plugin.PluginURLJarFileCallBack.connect(Unknown Source) 
    at sun.plugin.PluginURLJarFileCallBack.retrieve(Unknown Source) 
    at sun.net.www.protocol.jar.URLJarFile.retrieve(URLJarFile.java:205) 
    at sun.net.www.protocol.jar.URLJarFile.getJarFile(URLJarFile.java:71) 
    at sun.net.www.protocol.jar.JarFileFactory.get(JarFileFactory.java:88) 
    at sun.net.www.protocol.jar.JarURLConnection.connect(JarURLConnection.java:122) 
network: Cache entry not found [url: https://mytest.domain.tr/LoginWeb/myapplet.jar, version: null] 
... 
network: Cache entry not found [url: https://mytest.domain.tr/LoginWeb/test/AppletTest.class, version: null] 
network: Connecting https://mytest.domain.tr/LoginWeb/test/AppletTest.class with proxy=DIRECT 
network: Connecting http://mytest.domain.tr:443/ with proxy=DIRECT 
java.lang.ClassNotFoundException: test.AppletTest 
    at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source) 
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source) 
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source) 
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source) 
    at sun.plugin2.applet.Plugin2Manager.initAppletAdapter(Unknown Source) 
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source) 
    at java.lang.Thread.run(Thread.java:724) 
    ... 
security: Reset deny session certificate store 
basic: Dialog type is not candidate for embedding 
+0

우리는 SSL 연결을 설정하기 위해 시스코 네트워크 장치에서 SSL 가속기 모듈을 사용하고 있습니다. 그 후이 네트워크 장치는 요청을 처리하기 위해 HTTP 프로토콜을 사용하여 웹 서버 (Ibm Http Server)와 통신합니다. HTTP 서버를 https를 통해 제공하도록 구성하고 cisco 장치를 제거하면 Java 1.7에서 오류가 발생하지 않습니다. 내가 문제를 자바 또는 시스코로 인한 혼란 스러워요? – mbsau

답변

0

대부분의 경우 리버스 프록시 설정과 관련 될 수 있습니다. 예를 들어 아파치에서 당신은 매개 변수 아래에 설정해야합니다.

ProxyPass /foo http://foo.example.com/bar 
ProxyPassReverse /foo http://foo.example.com/bar 

다른 역방향 프록시 서버와 유사한 옵션을 찾을 수 있습니다.

+0

답변 해 주셔서 감사합니다. mod_proxy는 http 서버에서 사용할 수 없으므로 문제는 프록시 설정과 관련이 없다고 생각합니다. 실제로 HTTP 서버는 요청이 클라이언트 또는 cisco SSL 모듈에서 오는 것인지 알 수 없습니다. 단지 HTTP 프로토콜을 사용한다는 것을 알고 있습니다. – mbsau

0

우리는 Wireshark를 통해 네트워크를 조사한 결과 서버가 실제로 클라이언트 - 안녕하십니까, Java8에서 비활성화 된 chipher 슈트를 선택한다는 것을 알았습니다. 변경 후 네트워크 장치의 SSL 모듈 문제가 해결되었습니다. Java here에서 기본 지원 칩러 스위트를 찾을 수 있습니다.