Pika使用SSL连接而没有证书文件

时间:2016-10-22 17:05:01

标签: python rabbitmq pika

我正在尝试使用pika连接到使用SSL的RabbitMQ(自签名)。

问题是如果我没有将证书文件提供给pika,则连接不会失败。

这是我的代码:

import pika
import urllib

connection = pika.BlockingConnection(pika.URLParameters("amqps://guest:guest@172.16.120.130:25585"))
channel = connection.channel()

channel.queue_declare(queue='hello')
channel.basic_publish(exchange='',
                      routing_key='hello',
                      body='Hello World!')

print(" [x] Sent 'Hello World!'")
connection.close()

这是我的rabbitmq.config:

{tcp_listeners, []},
{ssl_listeners, [25585]},
{ssl_options, [{cacertfile,           "/etc/rabbitmq/certs/cacert.pem"},
               {certfile,             "/etc/rabbitmq/certs/cert.pem"},
               {keyfile,              "/etc/rabbitmq/certs/key.pem"},
               {verify,               verify_peer},
               {versions, ['tlsv1.2', 'tlsv1.1', 'tlsv1']},
               {fail_if_no_peer_cert, false}]},

我已禁用TCP连接并启用了SSL,为什么连接没有失败?

1 个答案:

答案 0 :(得分:0)

这是因为服务器中的这种配置:traversal

将其更改为:{fail_if_no_peer_cert, false}

如果客户没有提供证书,则表示删除连接。