2013-11-26 142 views
0

我正在使用.NET框架從pfx文件導入私鑰。特別是我使用X509Certificate2Collection.Import方法(字符串,字符串,X509KeyStorageFlags)方法來做到這一點。僅使用X509KeyStorageFlags.Exportable將私鑰導入到X509Certificate2Collection

我只傳入X509KeyStorageFlags.Exportable標誌,這對我在開發/測試和Azure網站上的生產中工作正常。即

X509Certificate2Collection collection = new X509Certificate2Collection(); 
collection.Import(PfxFileLocation, Password, X509KeyStorageFlags.Exportable); 

第三方正試圖重新使用我的程序集。它在開發/測試中可以正常工作。但是,當他們在Azure中運行它時,他們會收到有關未找到證書文件的錯誤。他們讓我打開旗幟,這似乎對他們有用。即

X509Certificate2Collection collection = new X509Certificate2Collection(); 
collection.Import(PfxFileLocation, Password, X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.Exportable); 

我想了解發生了什麼事。打開這些標誌會帶來安全風險嗎?基於MSDN文檔,我不明白爲什麼需要打開它。 http://msdn.microsoft.com/en-us/library/vstudio/ms148499%28v=vs.100%29.aspx

任何人都可以對我這個任何提示?

回答

1

也許有點晚,但您需要添加X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet

否則你會像我一樣運行在ssl 1312錯誤