启用ssl时无法连接到rabbitmq管理控制台-centos docker容器

启用ssl时无法连接到rabbitmq管理控制台-centos docker容器,docker,rabbitmq,erlang,centos7,Docker,Rabbitmq,Erlang,Centos7,我在docker容器中安装了rabbitmq。我使用centos:最新图片创建了这个容器。我安装rabbitmq的步骤如下: [ { rabbit, [ { loopback_users, [ ] }, { tcp_listeners, [ ] }, { ssl_listeners, [ 5671 ] }, { ssl_options, [ { cacertfile, "/path/to/cacert" }, { certfile,

我在docker容器中安装了rabbitmq。我使用centos:最新图片创建了这个容器。我安装rabbitmq的步骤如下:

[
{ rabbit, [
    { loopback_users, [ ] },
    { tcp_listeners, [ ] },
    { ssl_listeners, [ 5671 ] },
    { ssl_options, [
        { cacertfile, "/path/to/cacert" },
        { certfile, "/path/to/cert" },
        { fail_if_no_peer_cert, false },
        { keyfile, "/path/to/key" },
        { verify, verify_peer }
    ] },
    { hipe_compile, false }
] },
{ rabbitmq_management, [ { listener, [
    { port, 15672 },
    { ssl, true },
    { ssl_opts, [
        { cacertfile, "/path/to/cacert" },
        { certfile, "/path/to/cert" },
        { keyfile, "/path/to/key.pem" },
        { fail_if_no_peer_cert, false },
        { verify, verify_none }
    ] }
] } ] }
].
  • yum-y更新&&yum-y安装epel版本&&yum-y安装wget-logrotate
  • wget
  • rpm—导入
  • yum安装rabbitmq-server-3.6.1-1.noarch.rpm
  • 服务rabbitmq服务器启动
  • rabbitmqctl添加用户管理员
  • rabbitmqctl设置\用户\标记管理员
  • rabbitmqctl设置权限-p/admin“*”
  • rabbitmq插件支持rabbitmq_管理
  • 此时,我可以使用url访问管理控制台而不会出现任何问题

    然后我添加了一个自定义配置/etc/rabbitmq/rabbitmq.config文件。内容,如果该文件如下所示

    [
    { rabbit, [
        { loopback_users, [ ] },
        { tcp_listeners, [ ] },
        { ssl_listeners, [ 5671 ] },
        { ssl_options, [
            { cacertfile, "/path/to/cacert" },
            { certfile, "/path/to/cert" },
            { fail_if_no_peer_cert, false },
            { keyfile, "/path/to/key" },
            { verify, verify_peer }
        ] },
        { hipe_compile, false }
    ] },
    { rabbitmq_management, [ { listener, [
        { port, 15672 },
        { ssl, true },
        { ssl_opts, [
            { cacertfile, "/path/to/cacert" },
            { certfile, "/path/to/cert" },
            { keyfile, "/path/to/key.pem" },
            { fail_if_no_peer_cert, false },
            { verify, verify_none }
        ] }
    ] } ] }
    ].
    
    然后我重新启动rabbitmq服务,并尝试使用url进行连接。但它没有联系

    rabbitmq日志文件中有以下错误日志

    =ERROR REPORT==== 6-Jul-2018::07:35:18 ===
    application: mochiweb
    "Accept failed error"
    "{'EXIT',\n    {{function_clause,\n         [{ssl_cipher,hash_algorithm,\"\\b\",\n              [{file,\"ssl_cipher.erl\"},{line,1175}]},\n          {ssl_handshake,'-dec_hello_extensions/2-blc$^0/1-1-',1,\n              [{file,\"ssl_handshake.erl\"},{line,1649}]},\n          {ssl_handshake,'-dec_hello_extensions/2-blc$^0/1-1-',1,\n              [{file,\"ssl_handshake.erl\"},{line,1650}]},\n          {ssl_handshake,dec_hello_extensions,2,\n              [{file,\"ssl_handshake.erl\"},{line,1649}]},\n          {tls_handshake,decode_handshake,3,\n              [{file,\"tls_handshake.erl\"},{line,182}]},\n          {tls_handshake,get_tls_handshake_aux,3,\n              [{file,\"tls_handshake.erl\"},{line,153}]},\n          {tls_connection,next_state,4,\n              [{file,\"tls_connection.erl\"},{line,454}]},\n          {gen_fsm,handle_msg,7,[{file,\"gen_fsm.erl\"},{line,505}]}]},\n     {gen_fsm,sync_send_all_state_event,[<0.500.0>,{start,20000},infinity]}}}"
    
    =错误报告===2018年7月6日::07:35:18===
    应用:mochiweb
    “接受失败错误”
    “{EXIT',\n{function\u子句,\n[{ssl\u密码,散列算法,\'\\b\”,\n[{file,\'ssl\u密码.erl\},{line,1175}]},n{ssl\u握手,'-dec\u hello\u扩展名/2-blc$^0/1-1-',1\n[{file,\'ssl\u-handshake.erl\},{line,1649},},'-n\n{ssl\n\u握手,'-dec\n\u扩展名/1-'[{file,\'ssl\u handshake.erl\},{line,1650}]}、{ssl\u handshake,dec\u hello\u扩展名,2、{n[{file,\'ssl\u handshake.erl\}、{line,1649}、{line,1649}、{tls\u handshake,decode\u handshake,3、{n[{file,\'tls\u handshake.erl\}、{line,182}、{s\u handshake,get\tlu,get\tlu,{tls\u handshake.erl\“},{line,153}]}、{tls\u connection,next\u state,4、{n[{file,\'tls\u connection.erl\“}、{line,454}}、{line,454}}、{gen u fsm,handle\u msg,7、[{file,\'gen u fsm.erl\}、{line,505}}、{gen gen gen fsm,sync\u发送所有u state\u事件,[,,开始,20000}}
    

    这个错误的原因是什么?任何想法。提前感谢。

    错误
    {function_子句,[{ssl_密码,hash_算法,“\b”,[{file,“ssl_密码.erl”},{line,1196}
    发生这种情况是因为Erlang中的SSL应用程序的旧版本与现代web浏览器之间不兼容。请将Erlang升级到至少18.0版以解决此问题

    此问题的id为OTP-12829,在中描述为:

    OTP-12829优雅地忽略专有哈希符号算法
    
    为什么选择RabbitMQ版本3.6.1?它非常旧,不再受支持,当前版本为3.7.7。此外,您没有提到如何安装Erlang或正在使用的Erlang版本。