我已按照此链接中提到的步骤进行操作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 上的问题。
当我遇到与您描述的相同的“等待握手”症状时,这是因为其中一个证书路径无效(certfile
,keyfile
或cacertfile
)。请仔细检查这些路径是否正确以及用户rabbitmq
是否可以读取它们。