我使用stomp.py建立到ActiveMQ-Artemis/2.7.0.redhat-00056 ActiveMQ Artemis Messaging Engine
的Stomp1.2 SSL连接。我无法控制服务器,我得到了以下说明。(我是下面提到的认购人)
另一方将向每个订阅者提供一个信任存储文件、一个证书文件和一对用户ID和密码。根据订阅者系统的需求,订阅者可能需要将证书文件导入其服务器证书存储区,或者订阅者可能需要将信任存储区文件嵌入其连接编码中。
- 我需要任何AMQ/Artemis配置来嵌入证书吗?或者我可以通过http://jasonrbriggs.github.io/stomp.py/stomp.html#module-stomp.connect中的
set_ssl
方法传递所需的文件吗? - 我收到的文件是
broker_cert.cer.txt
和client.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。