我已获得一个.pem文件,用于在XML POST API上进行身份验证。我更喜欢使用Python请求,并在文档中找到我需要将.pem文件转换为服务器认证和密钥。我一直无法确切地找到需求(什么样的认证)。
之前我必须对文件进行一些openssl转换,但我不是专家。任何人都可以解释请求需要什么样的证书和密钥,以及如何将.pem转换为这些文件?
有关请求文档的更多信息,请参阅http://docs.python-requests.org/en/latest/user/advanced/#ssl-cert-verification
您会注意到对/path/server.crt
和/path/key
的引用。
答案 0 :(得分:6)
您可以在此处利用请求(see documentation here)的行为,而无需生成crt
或密钥文件。
我们在这里说pem
文件:/path/to/certificate.pem
,您可以这样做:
r = requests.get('https://example.com', verify='/path/to/cetificate.pem')
它应该完美无缺。
答案 1 :(得分:2)
路径以/path/server.crt给出,但文本显示为"您还可以指定本地证书用作客户端端证书,作为单个文件(包含私钥和证书)或作为文件路径的元组..."
由于您已获得身份验证的PEM文件,因此似乎客户端需要发送CLIENT证书。您需要客户端证书和客户端私钥。
查看那个PEM文件,你应该看到" ----- BEGIN CERTIFICATE -----"。再往前看,经过" -----结束证书----",是否有一个" -----开始RSA私钥-----" ?如果是这样,您在同一文本文件中同时拥有证书和私钥,并且您可以(根据文档)使用一个文件。或者,只需将RSA密钥部分剪切并粘贴到单独的文本文件中,并将该文件命名为" key"。