我已经获得了一个OpenSSL生成的PEM格式的X.509证书及其相关的密钥文件。连接到原型服务器时,此证书是身份验证所必需的。这在Linux上运行良好。我一直在使用Microsoft SChannel API在Windows平台上驱动SSL / TLS连接,但我想使用相同的测试证书。我可以右键单击证书文件并将其导入我的证书库,但我相信私钥不会随之导入(即使我已将它们连接到同一个文件中)。
当我去运行SChannel代码时,我得到了一个' SEC_E_NO_CREDENTIALS'初始化安全上下文时出错(通过InitializeSecurityContext)。我怀疑这意味着缺少私钥。
是否有人知道如何测试位于个人(或'我的')证书存储区中的证书中是否存在私钥,该证书通过' certmgr.msc&#访问39;?是否可以在商店中导入证书的新密钥文件?
非常感谢任何见解或建议。
答案 0 :(得分:10)
要测试是否为证书安装了私钥,请双击certmgr.msc中的证书图标。如果它有私钥,它会在属性页面中显示你有私钥的消息,否则它不会给私钥提供任何引用。
要使用其私钥导入证书,您可以执行以下操作:
请注意,导入pfx文件时可能会出现错误,例如“此文件无效,可用作以下内容:个人信息交换”。此错误是由缺少适当的X.509 v3扩展的证书(例如使用字段(数字签名等))引起的。