我正在尝试从基于 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
知道如何解决这个问题吗?
最佳答案
您必须下载服务器证书并复制到代码中提到的路径。在 Linux 中,您必须运行 c_rehash 命令来创建哈希。
引用链接:https://www.openssl.org/docs/manmaster/ssl/SSL_CTX_load_verify_locations.html
关于linux - 使用 qpid-proton-c 通过 AMQP 发送消息失败,并出现错误 SSL Failure : Unknown error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27620943/