【问题标题】:Can I retrieve certificate information from ClickOnce deploy files?我可以从 ClickOnce 部署文件中检索证书信息吗?
【发布时间】:2013-01-07 08:50:23
【问题描述】:

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

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

部署标识与订阅不匹配。

我的最佳猜测是,事实上,根据 MSDN 论坛的问题和回复,Deployment identity does not match the description,导致此错误的不同证书。但是,值得注意的是,我们既更改了部署代码的机器,也将解决方案更新到 Visual Studio 2010(但平台和配置相同)。

如何从以前的开发者机器或部署文件中检索原始证书信息?还是我们可能在试图解决这个问题时走错了路?

【问题讨论】:

  • 我们最终通过重新发布到不同的文件共享来解决此问题,因为无论如何我们都需要这样做,并向所有用户发送链接以重新安装。

标签: c# deployment certificate clickonce


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-16
    • 1970-01-01
    • 2012-04-06
    • 1970-01-01
    • 1970-01-01
    • 2010-10-06
    相关资源
    最近更新 更多