我目前有一个域名名为“rabbitmq.com”。我不想添加SSL证书做一个AMQPS连接。
我将certbot(让我们加密)为rabbitmq Jmeter 板生成的nginx证书放入rabbitmq配置中:
#listeners.tcp = none
listeners.ssl.default = 5671
ssl_options.cacertfile = /etc/rabbitmq/certs/fullchain.pem
ssl_options.certfile = /etc/rabbitmq/certs/cert.pem
ssl_options.keyfile = /etc/rabbitmq/certs/privkey.pem
ssl_options.verify = verify_peer
ssl_options.fail_if_no_peer_cert = true
字符串
重新启动后,rabbitmq工作,我可以诊断我的客户端计算机上的openssl连接:
openssl s_client -connect rabbitmq.<server>.com:5671 -cert cert.pem -key privkey.pem -CAfile fullchain.pem -verify 8 -verify_hostname rabbitmq.<server>.com
型
但openssl提出了一个错误:
00864C1001000000:error:0A000418:SSL routines:ssl3_read_bytes:tlsv1 alert unknown ca:ssl/record/rec_layer_s3.c:1588:SSL alert number 48
型
我尝试将verify_peer
更改为verify_none
,SSL客户端工作:
...
SSL handshake has read 4579 bytes and written 405 bytes
Verification error: unable to get issuer certificate
---
New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384
Server public key is 2048 bit
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
Verify return code: 2 (unable to get issuer certificate)
---
...
AMQP closed
型
但我不喜欢删除安全性。我的python pika客户端不工作。
我的第一个问题是我做得很好?我需要采取服务器证书(CA,证书,密钥)或我需要重新生成另一个客户端?
2条答案
按热度按时间dfty9e191#
SSL警报编号48表示“unknown_ca”。服务器无法验证您发送的客户端证书,因为它找不到任何指向服务器信任的CA的路径。您可能缺少证书的根CA证书证书的签名者?
f0ofjuux2#
ssl_options.fail_if_no_peer_cert应该设置为false,除非您的服务器必须验证连接来自何处。在这种情况下,它必须知道客户端证书提供商.
使用letsencrypt,配置如下:
字符串
注意更新后的权限修改。