在 C++ 中使用智能卡创建证书签名请求

Posted

技术标签:

【中文标题】在 C++ 中使用智能卡创建证书签名请求【英文标题】:Creating a Certificate Signing Request using smartcard in C++ 【发布时间】:2016-06-15 07:48:12 【问题描述】:

我有一张智能卡,它有自己的专用 pkcs11 库。我检查了 gnutls、openssl,但它们使用自己生成的私钥。如何在 C++ 中使用智能卡生成 csr(pkcs10)?

【问题讨论】:

如果您希望从 Web 应用程序生成 CSR 和下载证书,请参阅 ***.com/a/68556286/9659885 SignerDigital Browser Extension for Linux 是用 C++ 编写的,也具有此功能。 【参考方案1】:

您不会使用智能卡生成 CSR - 您会生成一个密钥对,然后使用该密钥对来创建 CSR。我知道我们的SecureBlackbox 产品可以做到这一点。或者您可以调用 PKCS#11 库生成密钥对,然后使用PKCS#11 extension to OpenSSL 创建 CSR。

【讨论】:

我想在智能卡中使用私钥来创建一个带有 OpenSSL 的 CSR。我使用 AKIS 智能卡,而 OpenSSL 不能将此智能卡用作引擎。当我输入“p11tool --provider /usr/lib/libakisp11.so --list-privkeys --login”时,我遇到了无效参数(不加载库)之类的错误。所以我正在寻找另一种在智能卡内使用私钥创建 CSR 的方法。 @omeryildiz 如果 PKCS#11 驱动程序不适合您,首先要做的是调查,为什么 - 它应该可以工作。您可能需要联系供应商寻求支持。在任何情况下,如果没有驱动程序,就没有 [其他] 方法来处理硬件设备。

以上是关于在 C++ 中使用智能卡创建证书签名请求的主要内容,如果未能解决你的问题,请参考以下文章

使用智能卡或证书在浏览器中对数据进行数字签名

如何创建一个自签名的SSL证书

如何创建一个自签名的SSL证书

无法创建新的证书签名请求 (CSR)?

如何获取证书签名请求

openssl使用多种方法签名自签名