带有TLSv1_2的Python Pika连接

时间:2019-04-29 18:50:06

标签: python-3.x rabbitmq pika python-pika

我正在使用Python3.6来连接RabbitMQ。此连接使用TLSv1.2协议。设置SSL的连接参数:

var
  data: PByteArray;
//...

data := PByteArray(AllocMem(Size));
bytesRead := 0;

repeat
   read := recv(Sock, data[bytesRead], Size - Cardinal(bytesRead), 0);

连接到rabbitMq时出现以下错误:

    cxt = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2)
    ssl_options = pika.SSLOptions(context=cxt, server_hostname=rabbit_config['HOST'])

    conn_params = pika.ConnectionParameters(port=rabbit_config['PORT'],
                                            ssl_options=ssl_options,
                                            credentials=creds,
                                            virtual_host=rabbit_config['VIRTUAL_HOST'],
                                            channel_max=channel_size,
                                            heartbeat=heart_beat)

我已经为Connection ParametersTLS params example推荐了pika文档,但到目前为止没有成功。

使用Java编写连接到同一Rabbit主机的类似代码:

AMQPConnectionError: (AMQPConnectorSocketConnectError: ConnectionRefusedError(61, 'Connection refused'),)

1 个答案:

答案 0 :(得分:0)

我有一个很好的主意,为什么这一定会发生,我处于类似的情况。如果您在与Rabbitmq服务器相同的实例上运行代码,是否可以正常工作?在python上使用SSL时,似乎正在使用“ guest”用户,因此它不允许localhost以外的任何连接。如果是这种情况,请看看并尝试在同一实例上运行它。它应该工作。如果单击here,可以查看我的问题,它非常相似,并且可以在localhost上运行。当尝试从本地主机之外使用它时,我的问题仍然存在。