我试图从基于Linux的系统(https://github.com/genieplus/azure-service-bus-samples/blob/master/proton-c-queues-and-topics/sender.c)上的azure-service-bus-sample获取发送者示例。但是,当我尝试执行它时,它总是会失败,并带有以下痕迹:
Sending messages to amqps://testRule:***@MY_DOMAIN/ServiceBusDefaultNamespace/q1
CALL pn_messenger_set_outgoing_window... RETURNED 0
CALL pn_messenger_set_blocking... RETURNED 0
CALL pn_messenger_start... RETURNED 0
CALL pn_messenger_put... RETURNED 0
CALL pn_messenger_send... recv: Connection reset by peer
[0x1449a80]:ERROR amqp:connection:framing-error SSL Failure: Unknown error.
CONNECTION ERROR connection aborted (remote)
RETURNED 0
我尝试通过
将自动生成的证书添加为可信证书pn_messenger_set_trusted_certificates (messenger, "/ca/trusted/);
我收到了不同的错误消息:
Sent BytesMessage with id
c99a2261-843e-4ebf-846c8fe799e8fc0b
Message status PN_STATUS_ABORTED
Final send status is: failed, never sent on network
CALL pn_messenger_settle... RETURNED 0
CALL pn_messenger_put... RETURNED 0
CALL pn_messenger_send... [0x18aaad0]:ERROR amqp:connection:framing-error SSL Failure: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
RETURNED 0
知道如何解决这个问题吗?
答案 0 :(得分:0)
您必须下载服务器证书并复制到代码中提到的路径。在linux中,您必须运行 c_rehash 命令来创建散列。
参考链接:https://www.openssl.org/docs/manmaster/ssl/SSL_CTX_load_verify_locations.html