假设我有一个名为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)
如果我将验证设置为False,它可以正常工作,但我尝试在我的本地目录中使用cert文件。
答案 0 :(得分:0)
Python需要PEM格式的证书。
因此,您应该使用openssl x509命令从X509证书中提取公钥组件。
.cer扩展名通常表示二进制DER格式,因此此命令应以pycrypto可以使用的形式提取公钥:
openssl x509 -inform der -pubkey -noout -in you.cer >public_key.pem