我正在尝试使用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,为什么连接没有失败?
答案 0 :(得分:0)
这是因为服务器中的这种配置:traversal
将其更改为:{fail_if_no_peer_cert, false}
如果客户没有提供证书,则表示删除连接。