我尝试使用 python 库“请求”与受智能卡保护的网站进行通信。这意味着 SSL 中的强身份验证:您必须提供客户端证书(证书和私钥)。
由于我使用的是智能卡,因此无法读取作为正常保护的私钥(仅模数)。我可以使用 python 库 PyKCS11 读取智能卡:一旦给出密码,所有证书、公钥和私钥模数。
如何混合请求和 PyKCS11 ?
如何使用智能卡中的客户端证书发出 SSL 请求?
编辑 2017/08/04
在我的 Mac 上:
- 酿造安装openssl
- 酿造安装opensc
- 酿造安装engine_pkcs11
- openssl
- 引擎动态 -pre SO_PATH:/usr/local/Cellar/engine_pkcs11/0.1.8/lib/engines/engine_pkcs11.so -pre ID:pkcs11 -pre LIST_ADD:1 -pre LOAD -pre MODULE_PATH:/usr/local/lib/ (我特定的 Pkcs11 库)。dylib
- s_client -engine pkcs11 -key '(slot):(id)' -keyform engine -cert 'pem.cer' -connect (host):443 -state -debug
我现在的问题是 pyOpenSSl 在 API 中没有选择引擎的功能(如 pkcs11)。所以我被阻止了。我不能使用蟒蛇。