我正在创建一个与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一起使用,一切工作正常。
现在我已经切换到Windows7,每次我重新启动机器时,私钥似乎都会消失。我以Administrator的身份运行命令提示符,并执行上面所示的相同的makecert命令。此操作成功,并且SSL连接正常工作。如果我重新启动机器,对AuthenticateAsServer的调用将失败,并出现异常"The server mode SSL必须使用具有相关私钥的证书“。
为什么私钥会消失?我需要做些什么才能让它留下来?
发布于 2010-04-02 03:27:11
您在所有情况下都是同一个用户吗?当您说“以管理员身份运行”时,我认为您可能会导致它将私钥与不同的用户相关联,或者私钥文件没有适当的权限。如果这是权限问题,或者如果你不确定密钥是否消失了,可以使用FindPrivateKey工具:http://msdn.microsoft.com/en-us/library/ms732026.aspx我认为它是Server2003工具的一部分,但它在常规XP上运行得很好。所以希望它也能在Windows7上运行。我现在不在Win7机器前。
https://stackoverflow.com/questions/2563035
复制相似问题