将domino的https请求发送到bluemix

时间:2017-02-07 08:47:39

标签: java ssl ibm-cloud lotus-domino

当我向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();

2 个答案:

答案 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个修复包解决了这个问题