linux - 使用 qpid-proton-c 通过 AMQP 发送消息失败,并出现错误 SSL Failure : Unknown error

标签 linux servicebus qpid

我正在尝试从基于 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/

相关文章:

c# - 服务总线QueueClient.Receive如何工作?

c++ - Qpid 质子 C++ - 质子::make_work

linux - Linux shell 中的退出状态

c# - 如何在服务总线异常中使用 TrackingId?

nservicebus - 什么是服务总线?

java - QPID Proton-J 不推荐使用 Messenger - 但该用什么来代替呢?

c# - 在缺少 setup.py 的 Windows 上构建 Apache QPID

linux - linux 或 mac 终端命令可以向上滚动而不是向下滚动吗?

linux - 我可以恢复上次更改 vim 时丢失的代码吗?

linux - 在 pydev eclipse (Debian) 中配置 kivy 路径