2010-04-01 62 views
3

我創建的證書與SslStream使用,我一直在XP下做這種方式:Makecert問題7

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必須使用帶有關聯私鑰的證書。」

爲什麼私鑰會消失?我需要做些什麼才能讓它堅持下去?

+0

我現在有這個確切的問題,非常失望,這裏沒有答案! :) – EJA 2013-02-12 16:45:40

回答

1

在所有情況下你是同一個用戶嗎?當你說「以管理員身份運行」時,我認爲你可能會導致它將私鑰與不同的用戶相關聯,或者私鑰文件沒有適當的權限。如果它是一個權限問題,或者如果你不知道,如果鍵消失,使用FindPrivateKey工具: http://msdn.microsoft.com/en-us/library/ms732026.aspx 我認爲這是的Server2003的工具的一部分,但它運行在普通XP的罰款。所以希望它也能在Windows7上運行。我現在不在我的Win7機器上。