是否可以在没有必需的客户端证书的情况下允许RabbitMQ进行TLS连接?

问题描述

我已经修改了rabbitmq.conf以在端口5671上启用TLS。我所希望的是用户能够连接到服务器而无需生成其客户端证书。

rabbitmq.cong

中设置这些参数
ssl_options.verify               = verify_peer
ssl_options.fail_if_no_peer_cert = false

和我的Python脚本

import pika
import ssl

context = ssl.create_default_context(cafile="./ssl/cacert.pem")

ssl_options = pika.SSLOptions(context,'127.0.0.1')
#credentials = pika.PlainCredentials('admin','123456')
parameters = pika.ConnectionParameters(host='x.x.x.x',port=5671,virtual_host='/',credentials=credentials,ssl_options=ssl_options
                                  )

connection = pika.BlockingConnection(parameters)

channel = connection.channel()

channel.queue_declare(queue='Test_user')

channel.basic_publish(exchange='',routing_key='Test_user',body='Hello World!')
print(" [x] Sent 'Hello World!'")

connection.close()
              

但是一旦尝试使用Python脚本和pika lib发布消息,就会发生此错误

ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_Failed] certificate verify Failed: unable to get issuer certificate (_ssl.c:1123)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...