无法与 RabbitMQ-pika(amqps) 建立 ssl 连接

问题描述

我正在尝试通过 SSL 连接到 RabbitMQ,但每次都失败。 任何人都可以帮助解决这个问题。

版本详情: RabbitMQ:3.8.14 二郎:23.2 鼠兔:1.1.0 蟒蛇 3.9.0

以下是执行的操作。

  1. 创建自签名证书并在 advanced.config 文件添加以下代码
[
  {rabbit,[
     {tcp_listeners,[]},{ssl_listeners,[5671]},{ssl_options,[{certfile,"C:\\Users\\Test\\certificates\\CertificateFile_Cert.pem"},{keyfile,"C:\\Users\\Test\\certificates\\CertificateFile_Key.pem"},{verify,verify_peer},{fail_if_no_peer_cert,false}]}
   ]}
].
  1. 使用以下命令启用 SSL 并重新启动 rabbitMQ。
rabbitmq-plugins enable rabbitmq_auth_mechanism_ssl
rabbitmq-service.bat stop
rabbitmq-service.bat remove
rabbitmq-service.bat install
rabbitmq-service.bat start
rabbitmqctl start_app
rabbitmqctl status
  1. 在检查状态时出现在下方
Interface: [::],port: 15672,protocol: http,purpose: HTTP API
Interface: 0.0.0.0,purpose: HTTP API
Interface: [::],port: 25672,protocol: clustering,purpose: inter-node and CLI tool communication

请注意,我没有看到“amqp/ssl”条目,我认为它表示 SSL 侦听器

  1. 尝试使用以下代码建立连接。
import pika
connection_string = 'amqps://<user_name>:<password>@<host_name>/<virtual_host>'
connection = pika.BlockingConnection(pika.connection.URLParameters(connection_string))
channel = connection.channel()
  1. 出现以下错误
---------------------------------------------------------------------------
AMQPConnectionError                       Traceback (most recent call last)
<ipython-input-1-b458eda64f33> in <module>
      2 connection_string = 'amqps://oademo:Password1@IE4LLTF05VK63/oademohost'
      3 #connection_string = 'amqps://guest:guest@localhost/oademohost'
----> 4 connection = pika.BlockingConnection(pika.connection.URLParameters(connection_string))
      5 channel = connection.channel()

c:\users\h440242\miniconda3\envs\env\lib\site-packages\pika\adapters\blocking_connection.py in __init__(self,parameters,_impl_class)
    357         # Perform connection workflow
    358         self._impl = None  # so that attribute is created in case below raises
--> 359         self._impl = self._create_connection(parameters,_impl_class)
    360         self._impl.add_on_close_callback(self._closed_result.set_value_once)
    361 

c:\users\h440242\miniconda3\envs\env\lib\site-packages\pika\adapters\blocking_connection.py in _create_connection(self,configs,impl_class)
    448                 error = on_cw_done_result.value.result
    449                 LOGGER.error('Connection workflow Failed: %r',error)
--> 450                 raise self._reap_last_connection_workflow_error(error)
    451             else:
    452                 LOGGER.info('Connection workflow succeeded: %r',AMQPConnectionError: 

解决方法

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

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

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