我正在尝试使用SSL连接到RabbitMQ服务器,但出现此错误“ SSL对等证书验证失败”。
我使用openssl检查证书,如下所示:openssl s_client-连接主机:端口-CAfile cacert.pem
并且得到了“验证返回码:0(确定)”,因此我认为证书是确定的。
我正在尝试使用here中的amqps_bind.c示例。
我只需要服务器验证,所以我删除了amqp_ssl_socket_set_key()。
代码在amqp_socket_open()中失败。
而且我还有一个C#代码,可以使用SSL连接到同一服务器而没有任何错误。
我找到了我的问题。
我提供的cacert.pem文件是所有证书链。
仅提取根证书后,我可以连接到服务器。
除此之外,还要在rabbitmq.config中检查以下配置
{verify,verify_peer},
{fail_if_no_peer_cert,true}]},
如果您不想验证对等方,请将其更改为以下内容
{verify,verify_none},
{fail_if_no_peer_cert,false}]},