我正在尝试使用Pika连接到RabbitMQ。我们正在使用证书(ssl)来做到这一点。这是他们(皮卡)的例子:
context = ssl.create_default_context(
cafile="PIKA_DIR/testdata/certs/ca_certificate.pem")
context.load_cert_chain("PIKA_DIR/testdata/certs/client_certificate.pem",
"PIKA_DIR/testdata/certs/client_key.pem")
ssl_options = pika.SSLOptions(context, "localhost")
conn_params = pika.ConnectionParameters(port=5671, ssl_options=ssl_options)
这很好,如果我们的证书文件具有文件路径,但是我们在Windows上并且存储在Windows存储中。因此,我认为上面提供的load_cert_chain()无效。
我能够访问(或查看)特定的证书,如下所示:
context = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH)
context.load_default_certs()
certs = context.get_ca_certs()
但这会获得一份证书列表。我没有找到任何明显的方法来搜索和获取所需的证书。即使可以,我也不确定如何建立与“ pika.SSLOptions(context,...)”的代码连接
所以这里有两个问题,但更重要的是:
(另一个问题是如何将其连接到Pika,但我可以弄清楚是否回答了上述问题)
注意:Pika只是与RabbitMQ接口的第三方库。 Note2:使用Python3.5
答案 0 :(得分:1)
从this search看一些命中之后,大多数处理Windows证书存储的Python库看起来都是这样做的,以获取CA certs and CRL lists而不是单个证书那么多。
wincertstore
库可能是您想要的。
注意: RabbitMQ团队监视rabbitmq-users
mailing list,并且有时仅在StackOverflow上回答问题。