以干净的方式将pkcs 12支持添加到请求库,而不需要进行猴子修补或临时文件
requests-pkcs12的Python项目详细描述
这个库将pkcs 12支持添加到python requests库中。
它是一个clean实现:它既不使用monkey补丁,也不使用临时文件。相反,它被集成到requestsas中 作者建议:创建一个自定义的TransportAdapter,它提供一个自定义的SSLContext。
在由requests直接提供此功能之前,此库是一个过渡解决方案。不过,这需要一些时间。有关详细信息,请参见corresponding issue。
用法
对于简单的一次性请求,可以使用此库作为requestslibrary:
fromrequests_pkcs12importgetr=get('https://example.com/test',pkcs12_filename='clientcert.p12',pkcs12_password='correcthorsebatterystaple')
如果您正在使用requests会话,请使用Pkcs12Adapter:
fromrequestsimportSessionfromrequests_pkcs12importPkcs12AdapterwithSession()ass:s.mount('https://example.com',Pkcs12Adapter(pkcs12_filename='clientcert.p12',pkcs12_password='correcthorsebatterystaple'))r=s.get('https://example.com/test')
安装
此库可用作PyPI package:
pip install requests_pkcs12
或者,您可以通过git:
git clone https://github.com/m-click/requests_pkcs12
参数
支持以下关键字参数:
- pkcs12_filename是一个字节字符串或unicode字符串,包含加密pkcs 12证书的文件名。
- 必须提供此参数或pkcs12_data。
- pkcs12_data是一个字节字符串,包含加密的pkcs 12证书数据。
- 必须提供此参数或pkcs12_filename。
- pkcs12_password是包含密码的字节字符串或Unicode字符串。
- 无论何时提供pkcs12_filename或pkcs12_data,都必须提供此参数。
如果使用这些参数,请不要同时使用requests的内置cert参数。但是,请使用其他参数。特别是,请使用the “verify” parameter来验证服务器端证书。