0

我正在使用 stomp.py 建立一个 Stomp1.2 SSL 连接到ActiveMQ-Artemis/2.7.0.redhat-00056 ActiveMQ Artemis Messaging Engine. 我无法控制服务器,我得到了以下说明。(我是下面提到的订阅者。)

另一方将向每个订阅者提供一个信任库文件、一个证书文件和一对用户 ID 和密码。根据订阅者系统的要求,订阅者可能需要将证书文件导入其服务器证书存储区,或者订阅者可能需要将信任库文件嵌入到其连接编码中。

  1. 我需要任何 AMQ/Artemis 配置来嵌入证书吗?或者我可以通过http://jasonrbriggs.github.io/stomp.py/stomp.html#module-stomp.connectset_ssl中的方法传入所需的文件吗?
  2. 我收到的文件是broker_cert.cer.txtclient.ts。我不确定如何使用它们。我在https://stackoverflow.com/a/50774783/16235794中看到了答案,听起来我需要生成.key.pem文件。但是,如果我正在生成文件,另一方应该如何验证它们呢?出于身份验证目的,我应该从另一方接收哪些文件?
4

1 回答 1

0

stomp.py库默认情况不会验证服务器证书,因此set_ssl仅使用服务器地址调用该方法应该可以工作,即:

conn.set_ssl([('127.0.0.1', 62614)])

调用set_ssl带有 PEM 服务器证书的方法来验证服务器证书,即:

conn.set_ssl([('localhost', 62614)], ca_certs='broker_cert.pem')

使用 keytoot 工具从client.ts信任库中导出 PEM 服务器证书或向对方请求。

keytool -keystore server-client.ts -storepass <STORE_PASSWORD> -alias <ALIAS> -exportcert -rfc > broker_cert.pem

有关详细信息,请参阅test_ssl.py

于 2021-08-04T08:07:58.703 回答