Pika可以在Ubuntu上连接到RabbitMq,但不能在Centos上工作?

问题描述:

相同的代码可以在Ubuntu上运行,而不是在Centos上运行!防火墙已关闭!Pika可以在Ubuntu上连接到RabbitMq,但不能在Centos上工作?

Ubuntu 16.04,python版本3.5.2。

Centos 7,python版本3.5.2。

Ubuntu和centos是virtualbox中新安装的! RabbitMq config tls!

在Centos上,如果连接rabbitmq disable ssl是可以的,但是如果连接rabbitmq enable ssl fail。

你能帮我吗?非常感谢!

这个RabbitMQ的配置:

rabbit, [ 
     { loopback_users, [ ] }, 
     { tcp_listeners, [ 5672 ] }, 
     { ssl_listeners, [ 5671 ] }, 
     { ssl_options, [ 
       { cacertfile, "/ca/private/ca.crt" }, 
       { certfile, "/ca/server/server.pem" }, 
       { fail_if_no_peer_cert, false }, 
       { keyfile, "/ca/server/server.key" }, 
       { verify, verify_peer } 
     ] }, 
     { hipe_compile, false } 
] 

此代码:

#!/usr/bin/env python3.5 
import pika 
import ssl 

ssl_options = {  
    "ca_certs":"/root/ca/private/ca.crt", 
    "certfile": "/root/ca/rbq/client.crt", 
    "keyfile": "/root/ca/rbq/client.key", 
    "cert_reqs": ssl.CERT_REQUIRED, 
    "ssl_version":ssl.PROTOCOL_TLSv1_2 
} 
credentials = pika.PlainCredentials('ttttt', '123456') 
parameters = pika.ConnectionParameters(host='192.168.1.164', 
             port=5671, 
             virtual_host='/', 
             heartbeat_interval = 0, 
             credentials=credentials, 
             ssl = True, 
             ssl_options = ssl_options) 
connection = pika.BlockingConnection(parameters) 
connection.close() 

此错误消息:

Traceback (most recent call last): 
    File "./rb.py", line 20, in <module> 
    connection = pika.BlockingConnection(parameters) 
    File "/usr/local/lib/python3.5/site-packages/pika/adapters/blocking_connection.py", line 339, in __init__ 
    self._process_io_for_connection_setup() 
    File "/usr/local/lib/python3.5/site-packages/pika/adapters/blocking_connection.py", line 374, in _process_io_for_connection_setup 
    self._open_error_result.is_ready) 
    File "/usr/local/lib/python3.5/site-packages/pika/adapters/blocking_connection.py", line 395, in _flush_output 
    raise exceptions.ConnectionClosed() 
pika.exceptions.ConnectionClosed 

这RabbitMQ的服务器日志:

[[email protected] rabbitmq]# tail [email protected] 
SSL: certify: ssl_alert.erl:93:Fatal error: decrypt error 

=INFO REPORT==== 22-Aug-2016::12:50:48 === 
accepting AMQP connection <0.22118.20> (192.168.1.131:48526 -> 192.168.1.164:5671) 

=INFO REPORT==== 22-Aug-2016::12:50:48 === 
closing AMQP connection <0.22118.20> (192.168.1.131:48526 -> 192.168.1.164:5671) 

=ERROR REPORT==== 22-Aug-2016::12:54:04 === 
SSL: certify: ssl_alert.erl:93:Fatal error: decrypt error 
+0

你确定,端口是开放的,你没有任何防火墙规则可能会停止连接? – piyushj

+0

防火墙已关闭! – Yangyang

+0

看看这个https://github.com/pika/pika/issues/650 – piyushj

我的服务器证书使用md5WithRSAEncryption作为签名算法

redhat document about openssl

我更新算法SHA256。我工作正常! :)

谢谢avij!