我正在尝试向我编写的站点发出 Web 请求,该站点要求客户端提供证书以进行身份验证。
具体来说,我正在尝试编写一个可以发出 Web 请求的 C#(或 Visual C++)应用程序,但在我的 HSM 上使用证书和私钥。
我意识到这里有一个类似的问题,但它没有收到我需要的答案。
我已经可以:
- P/Invoke 我的本机 pkcs#11 库(一个 DLL)、登录、在 HSM 上查找/创建对象
- 使用 pkcs#11 界面,我可以阅读找到 HSM 上的 X509 证书
我不能:
- 从 HSM 导出私钥。它不可导出。
所以我需要一种从我的应用程序发出 Web 请求并说“对于握手,使用我的 HSM 上的 X509 和 Private Key 对象”的方法。
请不要建议我“检查”诸如 NCryptoki、Bouncy Castle 等之类的东西——我已经可以使用它们来制作我的 Windows 应用程序。与 HSM 通信。我需要的是如何制作 Windows 应用程序。在 HSM 上的凭据上下文下发出 Web 请求。