假设我有一个名为 symantec-class3.cer 的 cer 文件,这就是我正在尝试的:
headers = {"content-type": "application/json"}
api_url = "https://www.someurl.com/search"
pprint.pprint(requests.post(api_url, auth=HTTPBasicAuth(username, password), verify="symantec-class3.cer", data=json.dumps(payload), headers=headers).json())
这是不喜欢它并吐出以下错误:
requests.exceptions.SSLError: [Errno 0] _ssl.c:344: error:00000000:lib(0):func(0):reason(0)
如果我将 verify 设为 False,它会正常工作,但我正在尝试使用本地目录中的证书文件。
最佳答案
Python 需要 PEM 格式的证书。
因此您应该使用 openssl x509 命令从 X509 证书中提取公钥组件。
.cer 扩展名通常表示二进制 DER 格式,因此此命令应以 pycrypto 可以使用的形式提取公钥:
openssl x509 -inform der -pubkey -noout -in you.cer >public_key.pem
关于python - 如何使用 .cer 文件作为 python 请求的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33019340/