无法使用 web_stomp 为 rabbitMQ 配置 ssl

无法使用 web_stomp 为 rabbitMQ 配置 ssl

我已按照此链接中提到的步骤进行操作https://www.rabbitmq.com/ssl.html因为我使用的是 web_stomp,所以我将 webstomp 的 URL 修改为 wss://my_url:my_web_stomp_port/ws,并且我的 rabbitmq.config 为

[
  {rabbit, [
    { loopback_users, [ ] },
  { tcp_listeners, [ 5672 ] },
    { hipe_compile, false },
    {ssl_listeners, [5671]},
    {ssl_options, [{cacertfile,"/path/to/crt/cacert.pem"},
                    {certfile,"/path/to/crt/cert.pem"},
                    {keyfile,"/path/to/crt/key.pem"},
                    {verify,verify_peer},
                    {fail_if_no_peer_cert,false}]}
  ]},
  {rabbitmq_web_stomp,
      [{ssl_config, [{port,       15671},
                    {backlog,    1024},
                    {certfile,   "/path/to/crt/cert.pem"},
                    {keyfile,    "/path/to/crt/key.pem"},
                    {cacertfile, "/path/to/crt/cacert.pem"},

].

验证我的 SSL 连接是否已使用 openssl s_client -connect localhost:15671 -debug -msg ,但输出只是 CONNECTED(00000003) 在等待握手,可能要很长时间,我也进入了 failed: WebSocket opening handshake timed out控制台

我的日志显示

=INFO REPORT==== date:time ===
rabbit_web_stomp: listening for HTTPS connections on 0.0.0.0:15671

我的rabbitMQ版本是3.6.2,Erlang版本是19.1

我怀疑是 TLS 版本或其他问题

谁能帮我解决这个问题?

答案1

RabbitMQ 团队监控此邮件列表并且仅有时回答 StackOverflow 上的问题。


当我遇到与您描述的相同的“等待握手”症状时,这是因为其中一个证书路径无效(certfilekeyfilecacertfile)。请仔细检查这些路径是否正确以及用户rabbitmq是否可以读取它们。

相关内容