Python Requests:将.pem转换为.crt和key

9
我收到了一个.pem文件,用于XML POST API的身份验证。我希望使用Python Requests,并在文档中发现需要将.pem文件转换为服务器证书和密钥。我无法确定Requests需要哪种类型的证书。
我以前曾经进行过一些文件的openssl转换,但并不是专家。有人能解释一下Requests需要哪种证书和密钥,以及如何将.pem文件转换为这些文件吗?
更多关于Requests文档的上下文,请参见http://docs.python-requests.org/en/latest/user/advanced/#ssl-cert-verification 您会注意到对/path/server.crt/path/key的引用。

“服务器认证和密钥”并没有提供太多信息。您有什么,需要什么?您是否生成了密钥并提交了CSR?您是否收到了签名的X509证书?事物的格式是什么?PEM还是DER/ASN.1? - jww
1
我认为我的问题已经很清楚了。我有一个.pem文件。我需要Python Request库所需的.crt和密钥。我不知道那是什么类型的文件 - 这就是问题所在。 - Rico
2个回答

14

在这里您可以利用requests的行为(请参见此处文档),无需生成或key文件。

假设您在此处拥有文件:/path/to/certificate.pem,则可以执行以下操作:

r = requests.get('https://example.com', verify='/path/to/cetificate.pem')

它应该可以完美地运行。


2
路径为/path/server.crt,但文本中写道:“您还可以指定本地证书作为< strong>客户端端证书,作为单个文件(包含私钥和证书)或两个文件路径的元组...”由于已经提供了PEM文件进行身份验证,因此客户端应该发送客户端证书。您需要一个客户端证书和客户端私钥。查看PEM文件,您应该会看到“----- BEGIN CERTIFICATE -----”一行。进一步查看,在“----- END CERTIFICATE ----”之后,是否有“----- BEGIN RSA PRIVATE KEY -----”?如果是,则在同一文本文件中同时具有证书和私钥,并且可以根据文档使用一个文件。或者,将RSA密钥部分剪切并粘贴到单独的文本文件中,并将该文件命名为“key”。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接