首页 > 解决方案 > Ansible + RabbitMQ + Docker 容器:OperationalError:客户端网络套接字在建立安全 TLS 连接之前断开连接

问题描述

我正在尝试在我使用 Ansible 配置的 RabbitMQ 容器上设置 TLS。我在主机上生成证书和密钥,然后将其复制到容器中。我在以下位置启用了 TLS rabbitmq.conf

listeners.tcp = none

listeners.ssl.default = 5671

ssl_options.cacertfile = /etc/rabbitmq/certs/hostname_ca.csr
ssl_options.certfile   = /etc/rabbitmq/certs/hostname_server_cert.pem
ssl_options.keyfile    = /etc/rabbitmq/certs/hostname_ca_key.pem
ssl_options.verify     = verify_peer
ssl_options.fail_if_no_peer_cert = false

容器启动良好,当我尝试连接它时不会抛出任何错误。我还可以看到 TLS 启动正常:

2021-02-15 16:55:42.660 [info] <0.625.0> 在 [::]:5671 上启动了 TLS (SSL) 侦听器

但在客户端,我看到以下错误:

❯ 节点 dist/src/test.js OperationalError:在对象 的 TLSSocket.onConnectEnd (_tls_wrap.js:1514:19)处 的 connResetException (internal/errors.js:608:14)处 建立安全 TLS 连接之前,
客户端网络套接字已断开连接 。 onceWrapper (events.js:416:28) at TLSSocket.emit (events.js:322:22) at endReadableNT (_stream_readable.js:1187:12) at processTicksAndRejections (internal/process/task_queues.js:84:21) {原因:错误: 在 Object.onceWrapper (events.js:416 ) 的 TLSSocket.onConnectEnd (_tls_wrap.js:1514:19)的 connResetException (internal/errors.js:608:14) 建立安全 TLS 连接之前,客户端网络套接字已断开连接:28)











在 TLSSocket.emit (events.js:322:22)
在 endReadableNT (_stream_readable.js:1187:12)
在 processTicksAndRejections (internal/process/task_queues.js:84:21) {
代码:'ECONNRESET',
路径:未定义,
主机:'localhost',
端口:5671,
localAddress:未定义
},
isOperational:true,
代码:'ECONNRESET',
路径:未定义,
主机:'localhost',
端口:5671,
localAddress:未定义
}

标签: node.jsdockersslansiblerabbitmq

解决方案


推荐阅读