如何将OpenSSL密钥文件导入Windows证书存储区

我有一个PEM格式的OpenSSL生成的X.509证书,它是关联的密钥文件。 连接到原型服务器时,需要使用此证书进行身份validation。 这在Linux上正常工作。 我一直在使用Microsoft SChannel API驱动Windows平台上的SSL / TLS连接,但我想使用相同的testing证书。 我可以右键单击证书文件并将其导入到我的证书存储中,但是我相信私钥没有被导入(尽pipe我已经将它们连接到相同的文件中)。

当我运行SChannel代码时,当我启动安全上下文(通过InitializeSecurityContext)时,出现“SEC_E_NO_CREDENTIALS”错误。 我怀疑这意味着私钥丢失。

有谁知道如何testing位于个人(或“我的”)证书存储中的证书中是否存在私钥,通过“certmgr.msc”访问该证书? 是否有可能在商店中为证书导入新的密钥文件?

任何见解或build议将不胜感激。

Solutions Collecting From Web of "如何将OpenSSL密钥文件导入Windows证书存储区"

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

带有私钥的证书


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

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

请注意,导入pfx文件时可能会出现错误,例如“此文件无效,如下所示:个人信息交换”。 这个错误是由于证书缺乏适当的X.509 v3扩展(如使用字段(数字签名等))造成的