2013-11-26 140 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错误