我有一个RabbitMQ 3.3.5,在rhel7上运行的Erlang R16B03-1,禁用了防火墙和selinux。
config的ssl部分如下:
{ssl_listeners, [15672]}, {ssl_options, [ {certfile,"/etc/rabbitmq/ssl/server.cer"}, {keyfile,"/etc/rabbitmq/ssl/key.pem"}, {verify,verify_none}, {fail_if_no_peer_cert,false} ]},
连接尝试的日志文件:
=INFO REPORT==== 7-Jan-2016::21:34:33 === accepting AMQP connection <0.354.0> (10.52.142.229:62631 -> 10.52.134.201:15672) =INFO REPORT==== 7-Jan-2016::21:34:33 === accepting AMQP connection <0.358.0> (10.52.142.229:62632 -> 10.52.134.201:15672) =ERROR REPORT==== 7-Jan-2016::21:34:37 === error on AMQP connection <0.314.0>: {ssl_upgrade_error,{tls_alert,"record overflow"}} =ERROR REPORT==== 7-Jan-2016::21:34:37 === error on AMQP connection <0.318.0>: {ssl_upgrade_error,{tls_alert,"record overflow"}}
为了清楚起见,它首先创build大约10个连接,然后在行中给出相同数量的tls警报。
客户端在RHEL6下运行。 这是一个基于apache轴的WSO2 ESB服务器。 configuration如下:
<transportSender name="rabbitmq" class="org.apache.axis2.transport.rabbitmq.RabbitMQSender"> <parameter name="AMQPConnectionFactory" locked="false"> <parameter name="rabbitmq.server.host.name" locked="false">JTIRABMQ01</parameter> <parameter name="rabbitmq.server.port" locked="false">15672</parameter> <parameter name="rabbitmq.server.user.name" locked="false">consumer</parameter> <parameter name="rabbitmq.server.password" locked="false">guest</parameter> <parameter name="rabbitmq.server.virtual.host" locked="false">myvhost</parameter> <parameter name="rabbitmq.connection.retry.interval" locked="false">10000</parameter> <parameter name="rabbitmq.connection.retry.count" locked="false">5</parameter> </parameter> </transportSender>
可能是什么原因? 我在这里find有关类似错误的信息 :
Alternatively, this error message can show up without a valid cert ERROR REPORT=== 23-Sep-2013::18:34:14 = error on AMQP connection <0.568.0>: {ssl_upgrade_error,"record overflow"} (unknown POSIX error) (This is when sender and server are on separate machines and sender does not provide certs)
而且…我不想要任何基于证书的authentication。 它不应该是一个错误,因为它是在选项允许的。
任何build议如何我可以解决它?
那么简单一点,我想。 没有这条线在客户端:
<parameter name="rabbitmq.connection.ssl.enabled">true</parameter>
启动连接的标题是纯文本。 因此,错误。