如何使用智能卡和python进行TLS请求?

2024-05-14 01:13:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试过使用python库“请求”与受智能卡保护的网站进行通信。这意味着SSL中的强身份验证:必须提供客户端证书(证书和私钥)。在

由于我使用的是智能卡,我无法读取私钥(只有模数),这是一个正常的保护。我可以阅读智能卡与python库PyKCS11:所有证书,公钥和私钥的模数一旦给出了pin代码。在

如何混合请求和PyKCS11?
如何使用智能卡中的客户端证书发出SSL请求?在

编辑2017/08/04

在我的Mac上:

  • brew安装openssl
  • brew安装opensc
  • brew安装引擎\u pkcs11
  • 开放式SSL
    • 引擎动态-pre-SO_路径:/usr/local/Cellar/engine_pkcs11/0.1.8/lib/engines/engine_pkcs11.SO-pre-ID:pkcs11-pre-LIST_地址:1-预加载-预模块路径:/usr/local/lib/(我的特定Pkcs11 lib).dylib
      • 加载:(pkcs11)pkcs11发动机
    • s_client-engine pkcs11-key'(插槽):(id)'-密钥表单引擎-cert'pem.cer公司'-connect(主机):443-state-debug
      • SSL握手正常

我现在的问题是pyOpenSSl在API中没有选择引擎的函数(比如pkcs11)。所以我被阻止了。我不能使用python。在


Tags: 引擎路径客户端sslsolibusrpre
2条回答

它与M2Crypto一起工作:

def InitPKCS11Engine(id, dllPath):
    Engine.load_dynamic()
    e = Engine.Engine('dynamic')
    e.ctrl_cmd_string('SO_PATH', dllPath)
    e.ctrl_cmd_string('ID', id)
    e.ctrl_cmd_string('LIST_ADD', '1')
    e.ctrl_cmd_string('LOAD', None)
    return e

然后,您可以添加特定的pkcs11库并添加pin。在

我会尝试使用:

相关问题 更多 >