Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法使用SSL连接到Rabbitmq_Ssl_Scrapy_Rabbitmq - Fatal编程技术网

无法使用SSL连接到Rabbitmq

无法使用SSL连接到Rabbitmq,ssl,scrapy,rabbitmq,Ssl,Scrapy,Rabbitmq,我一直在尝试通过SSL连接到Rabbitmq。 我遵循的步骤如下: 使用在服务器上生成的证书和pem文件 生成的文件如下: server_key.pem server_certificate.pem client_key.pem client_certificate.pem ca_key.pem ca_certificate.pem 通过此链接,我在/etc/rabbitmq下创建了一个名为rabbitmq.config的文件,复制了一个默认配置文件,并取消了对以下行的注释: [ {兔子[

我一直在尝试通过
SSL
连接到
Rabbitmq
。 我遵循的步骤如下:

  • 使用在服务器上生成的证书和pem文件

    生成的文件如下:

    • server_key.pem

    • server_certificate.pem

    • client_key.pem

    • client_certificate.pem

    • ca_key.pem

    • ca_certificate.pem

  • 通过此链接,我在
    /etc/rabbitmq
    下创建了一个名为
    rabbitmq.config
    的文件,复制了一个默认配置文件,并取消了对以下行的注释:

    [
    {兔子[
    {tcp_侦听器,[5671]},
    {ssl_侦听器,[5672]},
    {auth_机制,['EXTERNAL','PLAIN']},
    {ssl_options,[{cacertfile,“/path/to/ca_certificate.pem”},
    {certfile,“/path/to/server_certificate.pem”},
    {keyfile,“/path/to/server_key.pem”},
    {verify,verify_peer},
    {如果没有对等证书,则失败}]}
    ]}
    ].

  • 我已将客户端密钥复制到我试图从中连接到rabbitmq的计算机,并使用以下参数:

    RABBITMQ_连接_参数={'host':'rabbitmqHost','port':5671,
    “心跳间隔”:0,
    “ssl”:正确,
    'ssl_options':{'certfile':'client_certificate.pem',
    “keyfile”:“client_key.pem”,
    }
    }

  • 按照本规范中规定的参数

    如果不启用SSL并使用普通凭据,我就能够连接到rabbitmq服务器。但是,使用上述设置,我在连接时遇到以下错误:

    调试:pika.callback:添加:{'callback':>,'only':无,'one_shot':False,'arguments':无} 2017-03-10 16:00:23[pika.callback]调试:添加:{'callback':>,'only':无,'one_shot':False,'arguments':无} 调试:pika.callback:添加:{'callback':>,'only':无,'one_shot':True,'arguments':无,'calls':1} 2017-03-10 16:00:23[pika.callback]调试:添加:{'callback':>,'only':无,'one_shot':True,'arguments':无,'calls':1} 信息:pika.adapters.base_连接:使用SSL连接到rabbitmqSever:5672 2017-03-10 16:00:23[pika.adapters.base_connection]信息:使用SSL连接到rabbitmqSever:5672 警告:pika.adapters.base_连接:到rabbitmqSever:5672的连接失败:[Errno 336265218]_ssl.c:355:错误:140B0002:ssl例程:ssl_CTX_use_PrivateKey_文件:system lib 2017-03-10 16:00:23[pika.adapters.base_connection]警告:连接到rabbitmqSever:5672失败:[错误号336265218](ssl.c:355:错误:140B0002:ssl例程:ssl_CTX_use_PrivateKey)文件:系统库 警告:pika。连接:无法连接,还剩0次尝试 2017-03-10 16:00:23[pika.connection]警告:无法连接,剩余0次尝试 调试:pika.回调:处理0:\u连接\u错误 2017-03-10 16:00:23[pika.callback]调试:处理0:\u连接错误 调试:pika.callback:为“0:\u on\u connection\u error”调用> 2017-03-10 16:00:23[pika.callback]调试:调用>以获取“0:_on_connection_error” 延迟中未处理的错误: 严重:扭曲:延迟中未处理的错误: 2017-03-10 16:00:23[twisted]严重:延迟中未处理的错误:

    更新

    如果我使用
    openssl
    进行连接:

    openssl s_client -connect server:5671 -cert client_certificate.pem -key client_key.pem
    
    我得到以下信息:

    已连接(00000003)
    140243320723104:错误:140770FC:SSL例程:SSL23\u GET\u服务器\u HELLO:未知协议:s23\u clnt.c:795:
    没有可用的对等证书
    未发送客户端证书CA名称
    SSL握手读取了7个字节,写入了295个字节
    新建,(无),密码为(无)
    不支持安全重新协商
    压缩:无
    扩展:无

    rabbitmq日志显示了一个连接,但从ssl端口5672,它表示连接被拒绝


    请注意:我是从一个“刮屑蜘蛛”连接到rabbitmq的,很可怕,两年来没有人回答这个问题。。。我让它在同一个实例上通过SSL工作。但是我还没有得到本地主机的ISDE,因为尽管使用了SSL,它仍然使用“来宾”用户,并且来宾用户不允许从本地主机外部进行连接

    %% -*- mode: erlang -*-
    
    [
     {rabbit,
      [
       {ssl_listeners, [5671]},
       {ssl_options, [{cacertfile,"/home/daudn/tls-gen/basic/result/ca_certificate.pem"},
                      {certfile,"/home/daudn/tls-gen/basic/result/server_certificate.pem"},
                      {keyfile,"/home/daudn/tls-gen/basic/result/server_key.pem"},
                      {verify,verify_none},
                      {fail_if_no_peer_cert,false}]},
    
       {auth_mechanisms, ['PLAIN', 'EXTERNAL']}
    
    
    ].
    

    您写的是5672而不是5671。@现在:复制错误。我也试过5671。不起作用。也许来得晚了,但我们也遇到了类似的问题。我们编写了{ssl_监听器,[{“0.0.0.0”,5671}},而不是{ssl_监听器,[{“0.0.0.0”,5671}],解决了我们的问题。事实证明,RabbitMQ在没有此设置的情况下根本没有打开端口。