【发布时间】:2016-12-28 12:43:47
【问题描述】:
相同的代码可以在 Ubuntu 上运行,但不能在 Centos 上运行!防火墙已关闭!
Ubuntu 16.04,python 版本 3.5.2。
Centos 7,python 版本 3.5.2。
Ubuntu和centos是virtualbox新安装的! RabbitMq 配置 tls!
在 Centos 上,如果 connect rabbitmq disable ssl 是可以的,但是如果 connect rabbitmq enable ssl 失败。
你能帮帮我吗?非常感谢!
这是 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服务器日志:
[root@master1 rabbitmq]# tail rabbit@master1.log
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
【问题讨论】:
-
您确定端口已打开并且您没有任何可能会停止连接的防火墙规则吗?
-
防火墙已经关闭!
-
rabbitmq-server是否与客户端虚拟机在同一个机器上运行?它是否适用于禁用 SSL?你能连接到rabbitmq端口吗?试试nc -v 192.168.1.164 5671 -
rabbitmq-server 在其他电脑上运行!我尝试 nc -v 192.168.1.164 5671 结果:Ncat:版本 6.40 (nmap.org/ncat) Ncat:连接到 192.168.1.164:5671。 Ncat:对等方重置连接。
标签: python ubuntu centos rabbitmq python-pika