ssl - Windows 7下的makecert问题

标签 ssl windows-7 makecert

我正在创建一个用于 SslStream 的证书,我在 XP 下一直这样做:

makecert -r -pe -n "CN=aName" -ss my -sr localmachine -sky exchange 
  -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 server.cer

如果我理解正确,这会在 server.cer 中创建一个证书,并在我的个人证书库中为其创建一个私钥。完成此操作后,我可以像这样创建一个证书对象:

X509Certificate.CreateFromCertFile(certFile);

然后我将它与 SSLStream 一起使用,一切正常。

现在我已经切换到Windows 7,每次重启机器时私钥似乎都消失了。我以管理员身份运行命令提示符,并执行上面显示的相同 makecert 命令。这会成功并且 SSL 连接正常工作。如果我重新启动机器,对 AuthenticateAsServer 的调用将失败,出现异常“服务器模式 SSL 必须使用具有关联私钥的证书。”

为什么私钥不见了?我需要做什么才能让它一直存在?

最佳答案

在所有情况下您都是同一个用户吗?当您说“以管理员身份运行”时,我认为您可能会导致它将私钥与其他用户相关联,或者私钥文件可能没有适当的权限。如果是权限问题,或者您不确定 key 是否消失,请使用 FindPrivateKey 工具: http://msdn.microsoft.com/en-us/library/ms732026.aspx 我认为它是 Server2003 工具的一部分,但它在常规 XP 上运行良好。所以希望它也能在 Windows7 上运行。我现在不在我的 Win7 机器旁。

关于ssl - Windows 7下的makecert问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2563035/

相关文章:

python - 如何使用python在windows中批量重命名

c# - 创建并签署证书

google-chrome - Chrome 会忽略给定域或证书的警告吗?

php - SSL 破坏了 Facebook 的点赞按钮

vbscript - 列表分隔符脚本

iphone - 如何在 Windows 7 上安装配置文件进行测试

Android 安全/加密套接字

oracle - 通过 SSL (PROTOCOL=TCPS) 使用 Oracle 数据库的 Tomcat JDBCRealm

certificate - 如何强制 makecert 将私钥输出到文件(而不是加密存储)?

iis - 使用 makecert 开发 SSL