当我向bluemix服务发送https请求时,我有一个例外:
javax.net.ssl.SSLHandshakeException:收到致命警报: com.ibm.jsse2.o.a(o.java:8)at的unrecognized_name com.ibm.jsse2.o.a(o.java:4)at com.ibm.jsse2.SSLSocketImpl.b(SSLSocketImpl.java:40)at at com.ibm.jsse2.SSLSocketImpl.a(SSLSocketImpl.java:554)at at com.ibm.jsse2.SSLSocketImpl.h(SSLSocketImpl.java:223)at at com.ibm.jsse2.SSLSocketImpl.a(SSLSocketImpl.java:724)at at com.ibm.jsse2.SSLSocketImpl.startHandshake(SSLSocketImpl.java:81)at com.ibm.net.ssl.www2.protocol.https.c.afterConnect(c.java:8)at com.ibm.net.ssl.www2.protocol.https.d.connect(d.java:20)at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1207) 在com.ibm.net.ssl.www2.protocol.https.b.getInputStream(b.java:15) 在com.ibm.denisTeam.Main.NotesMain(Main.java:32)at lotus.domino.AgentBase.runNotes(未知来源)at lotus.domino.NotesThread.run(未知来源)
有人知道如何解决这个例外吗?
我使用以下代码发出请求:
网址url =新网址(HOST);
HttpURLConnection con =(HttpURLConnection) url.openConnection();
答案 0 :(得分:0)
当客户端(在这种情况下,客户端是运行代理程序的Domino服务器中的JVM)和服务器(Bluemix)没有安全连接协议和共同密码时,会发生SSLHandshakeExcpetion。您运行的是哪个版本的Domino服务器?
我最好的猜测是,由于这些协议中的已知安全问题,Bluemix可能不再接受SSL3或TLSv1.0协议,但Domino服务器上的JVM不支持TLSv1.1或v1.2。 (这只是猜测,但很多服务都是这样做的。)
有一些关于让TLSv1.2在this IBM Technote中使用Java代理的出站连接工作的信息,但我认为它是特定于Domino 9.如果您使用的是早期版本,那么您可能需要搜索大约一点,找到适合您的版本的正确信息。但是,在搜索时要小心,因为有关TLS支持和Domino的许多信息来源仅涵盖配置Domino服务以接受入站连接,这对于与JVM进行出站连接相关的问题无法帮助您。
答案 1 :(得分:0)
使用8个修复包解决了这个问题