Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法连接到SSL端口63149上的Lotus Notes DIIOP_Java_Lotus Notes_Corba - Fatal编程技术网

Java 无法连接到SSL端口63149上的Lotus Notes DIIOP

Java 无法连接到SSL端口63149上的Lotus Notes DIIOP,java,lotus-notes,corba,Java,Lotus Notes,Corba,我所在的公司创建了一个软件,可以对搜索中使用的各种源进行爬网和索引,在这种情况下,我们完全无法尝试通过SSL连接到Lotus Notes。这是一个典型的例子,它在dev中工作,但在prod中失败 我们是开发人员和技术人员,而不是Lotus Notes专家,这一事实进一步加剧了问题 基本上,我们有一个Java软件连接到Lotus,使用以下命令获取DIIOP IOR文本文件: String ior = NotesFactory.getIOR(host, userIOR, pwdIOR); 现在,这

我所在的公司创建了一个软件,可以对搜索中使用的各种源进行爬网和索引,在这种情况下,我们完全无法尝试通过SSL连接到Lotus Notes。这是一个典型的例子,它在dev中工作,但在prod中失败

我们是开发人员和技术人员,而不是Lotus Notes专家,这一事实进一步加剧了问题

基本上,我们有一个Java软件连接到Lotus,使用以下命令获取DIIOP IOR文本文件:

String ior = NotesFactory.getIOR(host, userIOR, pwdIOR);
现在,这是一个非SSL连接,需要用户名和密码才能连接。这种方法每次都非常有效

然后,我们尝试使用以下方法创建会话:

session = NotesFactory.createSessionWithIOR(ior, args, this.user, this.pwd);
其中:

args[0] = "-ORBEnableSSLSecurity";
连接时,我们始终收到此堆栈跟踪:

NotesException: Session closed due to communications failure
    at lotus.domino.cso.ORBCallback.make_error(Unknown Source)
    at lotus.priv.CORBA.iiop.Generic.make_error(Unknown Source)
    at lotus.priv.CORBA.portable.ObjectImpl._invoke(Unknown Source)
    at lotus.domino.corba._IObjectServerStub.createSession(Unknown Source)
    at lotus.domino.cso.Session.initSession(Unknown Source)
    at lotus.domino.cso.Session.<init>(Unknown Source)
    at lotus.domino.cso.Session.createSession(Unknown Source)
    at lotus.domino.NotesFactory.createSessionUP(Unknown Source)
    at lotus.domino.NotesFactory.createSessionWithIOR(Unknown Source)
[ ... ] 
Caused by: org.omg.CORBA.COMM_FAILURE: java.net.SocketException: Connection reset: Connection closed: Host: <redacted> Port: 63149  vmcid: 0x0  minor code: 1 completed: Maybe
    at lotus.priv.CORBA.iiop.IIOPConnection.purge_calls(Unknown Source)
    at lotus.priv.CORBA.iiop.ReaderThread.run(Unknown Source)
Caused by: java.net.SocketException: Connection reset
    at java.net.SocketInputStream.read(SocketInputStream.java:154)
    at java.net.SocketInputStream.read(SocketInputStream.java:141)
    at lotus.priv.CORBA.iiop.Message.readFully(Unknown Source)
    at lotus.priv.CORBA.iiop.Message.createFromStream(Unknown Source)
    at lotus.priv.CORBA.iiop.IIOPInputStream.prefill(Unknown Source)
    at lotus.priv.CORBA.iiop.IIOPConnection.createInputStream(Unknown Source)
    ... 1 more

您提到了DIIOP日志记录,但是如果在SSL握手中连接失败,那么DIIOP任务的核心可能不知道出了什么问题,因为这发生在堆栈的较低级别。但是,可以在服务器上设置其他调试变量

DEBUG_SSL_HANDSHAKE=1 
DEBUG_SSL_CIPHERS=1 
DEBUG_SSL_ALL=1
可将最后一个设置推至2或3,以获取更多详细信息


要使设置生效,可能需要重新启动服务器或可能需要重新启动服务器的diiop任务。

好的,答案很清楚,但不是我一直在寻找的东西

这不起作用的原因是第三方证书不是SHA-1证书,LotusNotes8.5.x只支持SHA-1


因此,基本上,他们的证书永远不能通过编程或其他方式用于SSL身份验证。

好吧,我更接近了一步:在我的客户机上用于TrustedCerts.class文件的第三方CA证书似乎没有给我们一个有用的TrustedCerts.class文件。我们将尝试设置一个自签名证书,以查看是否有任何更改Hanks,我已经设置了它们,但需要等待它们恢复到第三方证书并重新颁发TrustedCerts.class文件
DEBUG_SSL_HANDSHAKE=1 
DEBUG_SSL_CIPHERS=1 
DEBUG_SSL_ALL=1