我正在尝试向我写的网站发出网页请求,要求客户提供证书进行身份验证。
具体来说,我正在尝试编写一个可以发出Web请求的C#(或Visual C ++)应用程序,但是在我的HSM上使用证书和私钥。
我意识到这里有一个类似的问题,但它没有得到我需要的答案。
我已经可以了:
我不能:
所以我需要的是一种从我的应用程序发出Web请求的方法,并说:“对于握手,请在我的HSM上使用X509和私钥对象。”
请不要建议我“检查”像NCryptoki,Bouncy Castle等的东西 - 我已经可以使用它们制作我的Windows应用程序了。与HSM沟通。我需要的是如何制作Windows应用程序。在HSM上的凭据的上下文中发出Web请求。
答案 0 :(得分:0)
当您通过pkcs#11
本机电话获得证书时,您没有附加私钥。私钥进行解密,所以我们需要它。要解决这个问题,你有两个选择:
在安装过程中,几乎所有设备都会注册加密服务提供商。例如,您可以在该提供程序上包装RSACryptoServiceProvider
并将其分配给证书的PrivateKey
属性。
某些设备驱动程序会将HSM中的证书与个人证书存储区同步。如果从Windows存储中选择证书,它将自动附加加密服务提供程序。所以失踪的私钥问题就消失了。您只需将证书添加到ClientCertificates
集合。
你可以想象我会推荐第二种选择。