node.js - 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:未定义
}
解决方案
推荐阅读
- javascript - 将 Codemirror 编辑器中的更改链接到 HTML 文件中的 p5.js 输出
- python - Pandas 自动生成 CSV
- llvm - LLVM 后端的主要任务是什么
- sql - 多态关联查询多个 JOIN 作为单独的列
- python - 命令引发异常:KeyError: 'users' wen I execute ban command
- html - 标题和 iframe 未针对移动设备进行优化
- visual-studio-code - 错误:导入笔记本需要安装 Jupyter nbconvert
- javascript - 将数组减少为共享某些属性的对象:值
- python - 为什么 Spyder 不在变量资源管理器中包含“返回”语句值?
- c# - 如何将 OpenFileDialog 选择的文件 (txt) 显示到 MessageBox?