密钥集不存在(尝试从Web服务签署可执行文件)

时间:2016-03-16 23:31:48

标签: c# wcf webserver x509certificate

请参阅:X509Certificate - Keyset does not exist

我正在尝试使用IIS 8上的Web服务签署证书。我认为这就像在服务器上安装PFX一样简单,然后Web服务可以简单地使用该证书(来自商店)并签名一个可执行文件(这些可执行文件是按需创建的,并由我们的服务签名,至少这是它背后的想法)。

我已经用完了与上述问题相关的所有选项,我已导航到C:\ ProgramData \ Microsoft \ Crypto \ RSA \ MachineKeys,并将EVERYONE添加到文件中以查看是否可以缩小它的范围(实际上)是一个权限问题。我已经尝试运行MMC并为服务\计算机帐户添加了管理单元,我确保在安装证书时它被标记为可导出,我甚至尝试在Web服务本身添加代码基本上将证书添加到商店本身:即

   X509Store store = new X509Store(StoreName.My, StoreLocation.CurrentUser);
   store.Open(OpenFlags.ReadWrite);
   store.Add(cert);
   store.Close(); 

有什么想法吗?有没有其他方法可以确定(肯定)它是否实际上是权限问题?如果没有机器商店中的证书(即signtool.exe允许),就无法签署证书。

另外,作为参考,我使用了此处的类:Has anyone got any code to call SignerSignEx from C#?来签署证书。我已经浏览了互联网,大多数解决方案都非常相似:GUID证书文件本身的权限。任何有关这方面的帮助将不胜感激。

0 个答案:

没有答案