如何解决无法与 RabbitMQ-pika(amqps) 建立 ssl 连接
我正在尝试通过 SSL 连接到 RabbitMQ,但每次都失败。 任何人都可以帮助解决这个问题。
版本详情: RabbitMQ:3.8.14 二郎:23.2 鼠兔:1.1.0 蟒蛇 3.9.0
以下是执行的操作。
- 创建自签名证书并在 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}]}
]}
].
- 使用以下命令启用 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
- 在检查状态时出现在下方
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 侦听器
- 尝试使用以下代码建立连接。
import pika
connection_string = 'amqps://<user_name>:<password>@<host_name>/<virtual_host>'
connection = pika.BlockingConnection(pika.connection.URLParameters(connection_string))
channel = connection.channel()
- 出现以下错误。
---------------------------------------------------------------------------
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 举报,一经查实,本站将立刻删除。