【问题标题】:Python Pika connection with TLSv1_2Python Pika 与 TLSv1_2 的连接
【发布时间】:2019-04-29 18:50:06
【问题描述】:

我正在使用 Python3.6 连接到 RabbitMQ。此连接使用 TLSv1.2 协议。设置 SSL 的连接参数:

    cxt = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2)
    ssl_options = pika.SSLOptions(context=cxt, server_hostname=rabbit_config['HOST'])

    conn_params = pika.ConnectionParameters(port=rabbit_config['PORT'],
                                            ssl_options=ssl_options,
                                            credentials=creds,
                                            virtual_host=rabbit_config['VIRTUAL_HOST'],
                                            channel_max=channel_size,
                                            heartbeat=heart_beat)

连接rabbitMq时出现以下错误:

AMQPConnectionError: (AMQPConnectorSocketConnectError: ConnectionRefusedError(61, 'Connection refused'),)

我已将 pika 文档推荐给 Connection ParametersTLS params example,但目前没有成功。

连接到同一个 Rabbit 主机的类似代码在 Java 中工作:

    @Bean
    CachingConnectionFactory connectionFactory(String host,
            Integer port, String username,
            String password, boolean ssl,
             String sslAlgorithm) throws KeyManagementException, NoSuchAlgorithmException {

        ConnectionFactory connectionFactory = new ConnectionFactory();
        connectionFactory.setHost(host);
        connectionFactory.setPort(port);
        connectionFactory.setUsername(username);
        connectionFactory.setPassword(password);
        if (ssl) {
          connectionFactory.useSslProtocol();
          connectionFactory.useSslProtocol(sslAlgorithm);
        }

        CachingConnectionFactory cachingConnectionFactory = new CachingConnectionFactory(connectionFactory);
        cachingConnectionFactory.setRequestedHeartBeat(50);
        cachingConnectionFactory.setChannelCacheSize(10);
        return cachingConnectionFactory;
    }

【问题讨论】:

  • “连接被拒绝”可能是由于端口配置错误。 RabbitMQ 是否同时记录任何内容?

标签: python-3.x rabbitmq pika python-pika


【解决方案1】:

我很清楚为什么会发生这种情况,我也遇到了类似的情况。如果您在与 rabbitmq 服务器相同的实例上运行您的代码,它可以工作吗?在 python 上使用 SSL 时,它似乎使用的是“guest”用户,因此它不允许本地主机之外的任何连接。如果是这种情况,请查看并尝试在同一实例上运行它。它应该工作。如果您单击here,您可以查看我的问题,这非常相似,并且我已经在 localhost 上运行了它。尝试从本地主机外部使用它时,我的问题仍然存在。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-28
    • 2020-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-05
    相关资源
    最近更新 更多