无法与RabbitMQ建立SSL连接

3

我正在尝试与RabbitMQ代理建立SSL连接。我按照此页面的指导,并发现了我的错误,但我不知道如何解决它。 我在测试与代理的连接时遇到了问题:

openssl s_client -connect localhost:5671 -cert client/cert.pem -key client/key.pem -CAfile testca/cacert.pem

CONNECTED(00000003)
write:errno=104
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 0 bytes and written 289 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol  : TLSv1.2
Cipher    : 0000
Session-ID: 
Session-ID-ctx: 
Master-Key: 
Key-Arg   : None
PSK identity: None
PSK identity hint: None
SRP username: None
Start Time: 1470206187
Timeout   : 300 (sec)
Verify return code: 0 (ok)
---

我的日志中没有记录,但我需要 接受 AMQP 连接

#Rabbimq.conf
[
  {rabbit, [
     {ssl_listeners, [5671]},
     {ssl_options, [{cacertfile,".../testca/cacert.pem"},
                    {certfile,".../server/cert.pem"},
                    {keyfile,".../server/key.pem"},
                    {ciphers,  [{rsa,aes_256_cbc,sha256}]},
                    {verify,verify_peer},
                    {fail_if_no_peer_cert,false}]}
   ]}
].

我使用的证书是经过验证、验证和使用文档创建的。

我认为这个问题不允许我执行ssl连接。

谢谢

编辑:我使用rabbitmq用户在/var/lib/rabbitmq创建了证书,并且像这样权限正确,服务器可以访问证书。


检查RabbitMQ组是否拥有对目录".../testca"".../server/"的授权。 - Gabriele Santomaggio
这是我最初想到的事情,但并不是... - blQn
请在问题中发布您用于连接服务器的确切URL,并发布openssl s_client -connect <hostname>:<port> -tls1 -servername <hostname> | openssl x509 -text -noout的输出。通过单击“编辑”将其添加到您的问题中(不要将其作为评论发布)。否则,我们无法重现它,也没有足够的信息来帮助排除故障。 - jww
猜测,仅仅是猜测,证书中不包括localhost作为主题备用名称(SAN)。如果是这种情况,那么您需要编辑/etc/hosts并添加一个条目,指定www.example.com127.0.0.1。然后,您可以使用openssl s_client -connect www.example.com:5671 ...连接,主机名将匹配。 - jww
还可以参考如何使用您的认证机构签署证书签名请求如何使用openssl创建自签名证书?。它提供了关于X.509服务器证书的许多背景信息,以及各种规则的来源。 - jww
谢谢jww,我在SSL方面学到了很多。但问题很愚蠢...权限问题。 - blQn
1个回答

1

在我替换了 rabbitmq.config 后,一切都正常了。

{certfile,".../server/cert.pem"},

转换为完整的文件路径。

{certfile,"/data/server/cert.pem"}

当rabbitmq无法找到或无法读取证书文件时,它不会发出任何提示。
请检查证书文件的权限!

在我的本地Docker RabbitMQ配置中,我需要将所有证书/密钥文件更改为644权限。日志中没有关于此的任何信息。 - graczun

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接