我正在尝试在Python中读取具有pkcs12证书的API。在导入证书的Firefox中一切正常。我尝试了两种方法:
1)首先,我尝试使用OpenSSL
软件包
from OpenSSL import crypto
p12 = crypto.load_pkcs12(open("C:/PathToCertificate.p12", 'rb').read(),str.encode("mypassword")
p12certificate = p12.get_certificate()
p12privatekey = p12.get_privatekey()
p12cacertificates = p12.get_ca_certificates()
p12.get_friendlyname()
response = requests.get(url,cert=p12certificate)
第一部分似乎工作正常,但我不知道如何将证书传递给请求。
2)其次,我尝试了request_pkcs12
软件包:
r = get("https://eloverblik.dk/api/authorizationsv2",pkcs12_filename="C:/PathToCertificate.p12", pkcs12_password="mypassword")
但是我得到结果
SSLError: HTTPSConnectionPool(host='eloverblik.dk', port=443): Max retries exceeded with url: /api/authorizationsv2 (Caused by SSLError(SSLError("bad handshake: Error([('SSL routines', 'SSL3_GET_RECORD', 'wrong version number')],)",),))
我正在使用1.0.5版的request_pkcs12和python 3.6.1版。 TLS版本1.3。
任何想法出什么问题了吗?