首页 > 其他分享 >Requests 访问中出现key values mismatch的问题的一种情况

Requests 访问中出现key values mismatch的问题的一种情况

时间:2023-03-02 19:01:36浏览次数:34  
标签:xxxx xxx mismatch DC pem values key Attributes -----

概要

利用Requests访问网站。证书为pfx格式。当用openssl转换成pem格式并分离公钥私钥后,访问中出现

‘(Caused by SSLError(SSLError(116, '[X509: KEY_VALUES_MISMATCH] key values mismatch’

详细过程

先把pfx 用openssl 命令转换成 pem格式,因为这样才能把公钥和私钥分离,至于为何分离,是由于Requests需要。(没有找到其他的访问方式)

转换 pem 格式命令

openssl pkcs12 -in xxx.pfx -nodes -out xxx.pem

分离公钥

openssl x509 -in xxx.pem -out xxx_pub.crt

分离私钥

openssl rsa -in xxx.pem -out xxx.key

用Python requests 访问并带上公/私钥:

requests.get('https://xxx',cert =(xxx_pub,xxx.key))

然后遇到了上面的错误, 查了很多信息,但是无法解决。偶然发现转提取出来的公钥部份并不正确,因为使用的证书中含有根证书信息, 于是手动把公钥复制到xxx_pub.crt 文件中,错误即可解决。

本人使用证书(pem格式)如下所示,看样子不管是公钥还是私钥所需要的内容为 Bag Attributes 后的 BEGIN /END 的相关信息

Bag Attributes
localKeyID: xxxxxx
friendlyName: xxxxxxx
CSP Name: xxxxxxxxx
Key Attributes
X509v3 Key Usage: 10
-----BEGIN PRIVATE KEY-----

xxxxxxxxxxx

-----END PRIVATE KEY-----
Bag Attributes: <Empty Attributes>
subject=DC = xxx, DC = xxxx, CN = xxxx

issuer=DC = xxxx, DC = xxxx, CN = xxxxx

-----BEGIN CERTIFICATE-----

xxxxxxxxxxxx

-----END CERTIFICATE-----
Bag Attributes: <Empty Attributes>
subject=DC = xxx, DC = xxxx, CN = xxxxxx

issuer=DC = xxxx, DC = xxxx, CN = xxxxx

-----BEGIN CERTIFICATE-----

xxxxxxxxxxxxx

-----END CERTIFICATE-----
Bag Attributes
localKeyID:xxxxxxx

subject=CN = xxxxxxxxxx

issuer=DC = xxxx, DC = xxxx, CN = xxxxx

-----BEGIN CERTIFICATE-----

xxxxxxxxxxxx

-----END CERTIFICATE-----

标签:xxxx,xxx,mismatch,DC,pem,values,key,Attributes,-----
From: https://www.cnblogs.com/daftprogrammer/p/17149966.html

相关文章