如何使用PKCS11在python中建立TLS会话

2024-04-25 00:01:48 发布

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

我正在尝试在我控制的客户机和web服务器之间建立TLS通道。客户机和服务器都使用我在私有PKI方案下创建的证书进行身份验证。客户端密钥和证书存储在usb加密狗类型HSM上。Python是主要的应用程序语言。你知道吗

我可以使用python-pkcs11包为我的项目执行所有必需的加密操作,如AES加密、HMAC签名、RSA签名等。但是,我找不到将pkcs11“绑定”到任何TLS库的方法。我的意思是用一种“Pythonic”方式调用处理pkcs11层并建立TLS通道的函数。请求不支持pkcs11。libcurl支持pkcs11,但它没有在pycurl中实现,也没有pyopenssl。你知道吗

我可以使用engine api来完成openssl的\u客户端CLI工具:

openssl s_client -engine pkcs11 -verify 2 -CAfile path/to/CA.pem -keyform engine -key "pkcs11:...;object=rsa;type=private" -cert path/to/client-cert.pem -connect localhost:8443

我正在寻找的一个例子:

do_tls_with_pkcs(key=’pkcs11:URL’, cert=’cert.pem’, verify=’CA-cert.pem’)

据我所知,还没有这样的图书馆。现在我在找一个解决办法。你知道吗

我已经读到,如果openssl、libp11和python以这种方式编译,就有可能抽象所有这些,因此简单的请求调用将通过HSM,对应用程序代码是透明的。不过,我找不到任何关于怎么做的材料。你知道吗


Tags: topathclient客户端客户机cert方式tls