Я выполнил шаги, указанные в этой ссылке https://www.rabbitmq.com/ssl.html , поскольку я использую web_stomp, я изменил URL-адрес webstomp на 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 или чем-то еще
может ли кто-нибудь помочь мне решить эту проблему?
Команда RabbitMQ контролирует этот список рассылки и только иногда отвечает на вопросы по StackOverflow.
Когда я столкнулся с тем же симптомом «ожидания рукопожатия», как вы описываете, это произошло из-за того, что один из путей сертификата недействителен (certfile
, keyfile
или cacertfile
). Еще раз проверьте правильность этих путей и rabbitmq
пользователь может их прочитать.