如何将OpenSSL密钥文件导入Windows证书库

Gea*_*phy 10 windows openssl schannel x509

我有一个OpenSSL生成的PEM格式的X.509证书和它的关联密钥文件.连接到原型服务器时,此证书是身份验证所必需的.这在Linux上运行良好.我一直在使用Microsoft SChannel API来驱动Windows平台上的SSL/TLS连接,但我想使用相同的测试证书.我可以右键单击证书文件并将其导入我的证书库,但我相信私钥不会随之导入(即使我已将它们连接到同一文件中).

当我去运行SChannel代码时,我在初始化安全上下文时(通过InitializeSecurityContext)收到'SEC_E_NO_CREDENTIALS'错误.我怀疑这意味着缺少私钥.

有谁知道如何测试位于个人(或"我的")证书存储区中的证书中是否存在私钥,通过'certmgr.msc'进行访问?是否可以在商店中导入证书的新密钥文件?

任何见解或建议将不胜感激.

dop*_*ime 10

要测试是否为证书安装了私钥,请双击certmgr.msc中的证书图标.如果它有私钥,它将在属性页面中显示您有私钥的消息,否则它将不会提供私钥的任何引用.

带私钥的证书


要使用其私钥导入证书,您可以执行以下操作:

  1. 使用openssl pkcs12将证书及其私钥打包到PKCS#12文件或PFX文件中.这是一个例子.
  2. 将此PKCS#12或PFX文件导入证书存储区.

请注意,导入pfx文件时可能会看到错误,例如"此文件无效,可用作以下内容:个人信息交换".此错误是由缺少适当的X.509 v3扩展的证书(例如使用字段(数字签名等))引起的