代码之家  ›  专栏  ›  技术社区  ›  Viraj Amarasinghe

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

  •  1
  • Viraj Amarasinghe  · 技术社区  · 6 年前

    我将rabbitmq安装在Docker容器中。我用了Centos:最新的图像来创建这个容器。安装rabbitmq的步骤如下:

    1. yum-y更新并安装epel release&yum-y安装wget logrotate
    2. 工作组 https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.1/rabbitmq-server-3.6.1-1.noarch.rpm
    3. RPM—导入 https://www.rabbitmq.com/rabbitmq-signing-key-public.asc
    4. yum安装rabbitmq-server-3.6.1-1.noarch.rpm
    5. 服务rabbitmq服务器启动
    6. rabbitmqctl添加用户管理员
    7. rabbitmqctl设置用户标签管理员
    8. rabbitmqctl设置“权限-p/admin”。 “”。 “.*”
    9. rabbitmq插件启用rabbitmq_管理

    此时,我可以使用URL访问管理控制台,而不会出现任何问题。 http://localhost:15672

    然后我添加了一个自定义配置/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连接 https://localhost:15672 .但它没有联系,

    在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]}}}"
    

    这个错误的原因是什么?任何想法。事先谢谢。

    1 回复  |  直到 6 年前
        1
  •  2
  •   legoscia    6 年前

    {function_clause, [{ssl_cipher,hash_algorithm,"\b", [{file,"ssl_cipher.erl"},{line,1196}]}

    release notes

       OTP-12829  Gracefully ignore proprietary hash_sign algorithms