我試圖在C#應用程序中使用HttpListener類來讓迷你web服務器通過SSL提供內容。爲了做到這一點,我需要使用httpcfg工具。我有一個.pfx文件與我的公鑰和私鑰對。如果我使用mmc手動導入此密鑰對到本地機器商店,一切正常。但是,如果我使用X509Store類以編程方式導入此密鑰對,則無法連接到我的迷你網絡服務器。請注意,在這兩種方法中,證書都被導入到LocalMachine中的MY商店中。奇怪的是,一旦我以編程方式導入證書,我可以在mmc中查看證書,當我查看證書時,UI指示私鑰也可用於此證書。以編程方式用私鑰導入證書
挖掘更深一點,我注意到當我手動導入密鑰對時,我可以看到一個新文件出現在C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys
中,但是當我以編程方式導入時沒有出現。在相關說明中,當我刪除手動導入的證書時,它不會從前面提到的目錄中刪除相應的私鑰文件。
最終,我的問題是這樣的:當我以編程方式將證書添加到存儲中時,存儲私鑰的位置以及爲什麼HttpListener類(HttpApi)不可訪問?
注意,這個問題稍微相關,但我不認爲是許可控制,因爲這是所有正在做一樣的Windows用戶的問題: How to set read permission on the private key file of X.509 certificate from .NET
請將此標記爲答案 – Developer 2009-05-01 17:47:40