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

时间:2013-03-27 23:25:10

标签: windows openssl x509 schannel

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

当我去运行SChannel代码时,我得到了一个' SEC_E_NO_CREDENTIALS'初始化安全上下文时出错(通过InitializeSecurityContext)。我怀疑这意味着缺少私钥。

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

非常感谢任何见解或建议。

1 个答案:

答案 0 :(得分:10)

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

Certificate with a private key


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

  1. 使用openssl pkcs12将证书及其私钥打包到PKCS#12文件或PFX文件中。这是一个example
  2. 将此PKCS#12或PFX文件导入证书存储区。
  3. 请注意,导入pfx文件时可能会出现错误,例如“此文件无效,可用作以下内容:个人信息交换”。此错误是由缺少适当的X.509 v3扩展的证书(例如使用字段(数字签名等))引起的。