我可以从ClickOnce部署文件中检索证书信息吗?

时间:2013-01-23 18:48:29

标签: c# deployment certificate clickonce

我有一个ClickOnce应用程序,该应用程序已部署到许多用户,这些用户使用位于以前开发人员计算机上的证书进行签名。自该开发人员离开公司以来,证书已过期。为了从另一台机器重新发布应用程序,我们需要能够找到原始证书并使用扩展名进行更新。我可以访问以前的开发人员的计算机,但我找不到原始的.pfx文件来复制和更新证书。我也可以访问以前部署的所有文件。

我们尝试部署应用程序并收到错误:

  

部署标识与订阅不匹配。

我最好的猜测是,它实际上是基于MSDN论坛问题和响应 Deployment identity does not match the description 导致此错误的不同证书。但是,值得注意的是,我们既改变了部署代码的机器,也更新了Visual Studio 2010的解决方案(平台和配置虽然相同)。

如何从以前的开发人员的计算机或部署文件中检索原始证书信息?或者我们是否可能试图解决这个问题?

1 个答案:

答案 0 :(得分:3)

如果对计算机/用户帐户的物理访问可用,则检索证书不应该是一个问题,前提是它在导入时没有使用自定义密码保护。可以从Internet Explorer选项启动导出向导,如图所示。在其中一个选项卡中查找所需的证书(通常在个人选项卡中)。使用PFX格式导出私钥和公钥。

enter image description here

访问“导出”向导的另一种方法是通过MMC snap-in

[更新] 为了答案的完整性,不可能从签名的部署文件中检索私钥,因为它只包含加密密钥的公共部分。也许,在OP的情况下,私钥仍然存在,埋在开发机器的文件系统中(作为.PVK文件),尽管将它存储起来是一种不好的做法。有关证书文件类型的更多详细信息,请参见here。我希望在机器的证书存储中找到私钥和公钥,如上所述。