使用pika python模块时使用SSL到远程Rabbitmq实例的连接错误

时间:2019-05-13 13:53:05

标签: python rabbitmq pika

我正在尝试使用SSL连接到远程Rabbitmq实例。我决定使用pika模块,因为它似乎是使用最广泛的模块。我有来自远程服务器的cacert,如果没有对等证书,则不会失败的连接。我也在使用自签名证书,而不是在服务器端验证证书。尽管有所有这些,但我一直收到连接错误。我知道我可能只是错误地配置了参数,但是几天来我一直在解决这个问题。如何正确配置参数以连接到Rabbitmq实例?

这是我的Rabbitmq服务器配置

  {rabbit,
    [
      { tcp_listeners, [ 5672 ] },
      { ssl_listeners, [ 5671 ] },
      { ssl_options,  [
        { certfile,   "/etc/rabbitmq/ssl/cert.pem" },
        { keyfile,    "/etc/rabbitmq/ssl/key.pem" },
        { cacertfile, "/etc/rabbitmq/ssl/cacert.pem" },
        { verify,   verify_none },
        { fail_if_no_peer_cert, false } ] },
      {default_user, <<"guest">>},
      {loopback_users, []}
    ]

这是我正在尝试的代码

server = "server"
port = 5671
caCert = "./cacert.pem"
context = ssl.create_default_context(cafile="./cacert.pem")
ssl_options = pika.SSLOptions(context, server)
parameters = pika.ConnectionParameters(host=server, port=port, ssl_options=ssl_options)
connection = pika.BlockingConnection(parameters)
channel = connection.channel()

我希望在运行此代码时会收到0个错误,但我仍会收到某种形式的错误:

Traceback (most recent call last):
  File "test.py", line 11, in <module>
    connection = pika.BlockingConnection(parameters)
  File "/Library/Python/2.7/site-packages/pika/adapters/blocking_connection.py", line 360, in __init__
    self._impl = self._create_connection(parameters, _impl_class)
  File "/Library/Python/2.7/site-packages/pika/adapters/blocking_connection.py", line 451, in _create_connection
    raise self._reap_last_connection_workflow_error(error)
pika.exceptions.AMQPConnectionError

1 个答案:

答案 0 :(得分:0)

这实际上最终是防火墙问题。