使用stomp.py的Artemis AMQ订阅者需要哪些证书才能建立到服务器的SSL连接?



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

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

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

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

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

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

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

详情请参阅testrongsl.py。

相关内容

最新更新