Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.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\u升级\u错误rabbitMQ_Java_Ssl_Rabbitmq - Fatal编程技术网

Java ssl\u升级\u错误rabbitMQ

Java ssl\u升级\u错误rabbitMQ,java,ssl,rabbitmq,Java,Ssl,Rabbitmq,我已成功配置RabbitMQ以接受TLS连接(仅TLS1.1和TLS1.2) 现在我已经编写了一个连接到rabbitMQ服务器的Java程序 服务器(10.0.0.120)和2个客户端(10.0.0.121-122)都在一个单独的RaspberryPI上运行,该RaspberryPI的配置几乎相同 我可以使用openssl连接到服务器 root@10.0.0.122:~# openssl s_client -connect 10.0.0.120:5671 ... SSL-Session:

我已成功配置RabbitMQ以接受TLS连接(仅TLS1.1和TLS1.2)

现在我已经编写了一个连接到rabbitMQ服务器的Java程序

服务器(10.0.0.120)和2个客户端(10.0.0.121-122)都在一个单独的RaspberryPI上运行,该RaspberryPI的配置几乎相同

我可以使用openssl连接到服务器

root@10.0.0.122:~# openssl s_client -connect 10.0.0.120:5671
...
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : AES256-SHA256
    Session-ID:     2D1E2F6CECA4DCB3D7403E9DEF9F9DEAADF5AC15298D6CA54120F26D70D5E4A7
    Session-ID-ctx:
    Master-Key:     003C06F78281F23D8E2D7432E84B59EEABE586FA4472CF29259F8E7DAE4BD5F2F678A7F4FA27F9FBE6616481BAEEA131
    Key-Arg   : None
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    Start Time: 1422352831
    Timeout   : 300 (sec)
    Verify return code: 19 (self signed certificate in certificate chain)
---

root@10.0.0.121:~# openssl s_client -connect 10.0.0.120:5671
...
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : AES256-SHA256
    Session-ID:         B5538A83AE671DF2295632D02549C2E3059EED8DC73235DCE3D58FD69ABF7A62
    Session-ID-ctx:
    Master-Key: 86F3DDB68E5AB3796A9B762289AE7BD6D0E9A71CB549836D1A01C468180CAB98B9B819A1AF2255AE0BBF8B5911823EB8
    Key-Arg   : None
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    Start Time: 1422352895
    Timeout   : 300 (sec)
    Verify return code: 19 (self signed certificate in certificate chain)
---
两者都有相同的java版本

root@10.0.0.121:~# java -version
java version "1.7.0_40"
Java(TM) SE Runtime Environment (build 1.7.0_40-b43)
Java HotSpot(TM) Client VM (build 24.0-b56, mixed mode)

root@10.0.0.122:~# java -version
java version "1.7.0_40"
Java(TM) SE Runtime Environment (build 1.7.0_40-b43)
Java HotSpot(TM) Client VM (build 24.0-b56, mixed mode)
在这两个服务器上运行相同的jar文件

root@10.0.0.121:~# md5sum rabbitReceive.jar
6df91e2e714341588908798f7e28fa10  rabbitReceive.jar

root@10.0.0.122:~# md5sum rabbitReceive.jar
6df91e2e714341588908798f7e28fa10  rabbitReceive.jar
当我在10.0.0.122(它工作的地方!)上启动JAR文件时,我在rabbitMQ服务器日志中得到了这一点

=INFO REPORT==== 27-Jan-2015::11:07:11 ===
accepting AMQP connection <0.3709.0> (10.0.0.121:52944 -> 10.0.0.120:5671)
=INFO REPORT==== 27-Jan-2015::11:08:06 ===
accepting AMQP connection <0.3755.0> (10.0.0.122:37283 -> 10.0.0.120:5671)

=ERROR REPORT==== 27-Jan-2015::11:08:11 ===
Error on AMQP connection <0.3755.0>:
 {ssl_upgrade_error,timeout}

你知道问题出在哪里吗?

正如你所看到的,在jar启动和出错之间,正好有5秒钟的时间间隔

默认情况下,ssl握手超时设置为5秒。您的问题是ssl握手不能在默认的5秒内完成

您需要更改
NORMAL\u TIMEOUT
,也可以在
rabbit\u reader.erl
顶部更改
握手\u TIMEOUT
,以增加超时时间


您可以找到描述的配置设置。

我的系统上没有此类文件谢谢!我在rabbitmq.config中找到了一个增加ssl握手超时的选项!为供将来参考,这些配置设置记录在此处:
java.net.SocketException: Connection reset
    at java.net.SocketInputStream.read(SocketInputStream.java:196)
    at java.net.SocketInputStream.read(SocketInputStream.java:122)
    at sun.security.ssl.InputRecord.readFully(InputRecord.java:442)
    at sun.security.ssl.InputRecord.read(InputRecord.java:480)
    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:927)
    at sun.security.ssl.SSLSocketImpl.waitForClose(SSLSocketImpl.java:1705)
    at sun.security.ssl.HandshakeOutStream.flush(HandshakeOutStream.java:122                                                                                                                                                                                                                                             )
    at sun.security.ssl.Handshaker.kickstart(Handshaker.java:909)
    at sun.security.ssl.SSLSocketImpl.kickstartHandshake(SSLSocketImpl.java:                                                                                                                                                                                                                                             1423)
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.                                                                                                                                                                                                                                             java:1288)
    at sun.security.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:702)
    at sun.security.ssl.AppOutputStream.write(AppOutputStream.java:122)
    at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82                                                                                                                                                                                                                                             )
    at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)
    at java.io.DataOutputStream.flush(DataOutputStream.java:123)
    at com.rabbitmq.client.impl.SocketFrameHandler.sendHeader(SocketFrameHan                                                                                                                                                                                                                                             dler.java:129)
    at com.rabbitmq.client.impl.SocketFrameHandler.sendHeader(SocketFrameHan                                                                                                                                                                                                                                             dler.java:134)
    at com.rabbitmq.client.impl.AMQConnection.start(AMQConnection.java:278)
    at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory                                                                                                                                                                                                                                             .java:617)
    at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory                                                                                                                                                                                                                                             .java:639)
    at rabbitMqTest.Test.main(Test.java:97)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.                                                                                                                                                                                                                                             java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces                                                                                                                                                                                                                                             sorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoa                                                                                                                                                                                                                                             der.java:58)