具有过期证书的ClickOnce

时间:2015-06-04 15:25:50

标签: c# certificate

我有一个项目,我使用click一次来创建安装程序包。我们使用供应商颁发的证书签署此项目,而不是测试证书。由于我们的证书在5月份到期,我们必须使用新证书更新签名清单。

因此,我们创建了一个新证书,使用此新证书签署了ClickOnce清单并创建了一个新的安装程序包。这适用于新安装但由于证书不同而无法更新应用程序。根据我的搜索,客户必须手动卸载应用程序并使用新的签名证书安装新版本。不酷:(

根据Robin Shahan的说法,最好的方法是创建一个新的安装程序,删除现有版本(使用旧证书)并安装新版本(使用新证书)。 https://msdn.microsoft.com/en-us/library/ff369721.aspx

按照上面建议的步骤,我使用新证书创建了一个新包,并在另一个URL中设置。 然后,我尝试使用旧证书创建一个新包。它在第一次尝试时失败,因为之前的证书已过期。我可以创建包的唯一方法是将我的计算机日期设置为4月,然后创建包。

卸载旧版本并安装新版本的工作流程完美无缺,仅当计算机的日期设置为过去时(在我的情况下,4月份)。如果我尝试使用过期的证书安装软件包,它将显示以下消息,我认为这是预期的:

  

System.Security.SecurityException:此处的自定义功能   应用程序将无法正常工作,因为用于签署的证书   SuperPlugin的部署清单或其位置不受信任。   请联系您的管理员以获得进一步的帮助。

在同一篇文章中,Robin还建议使用RenewCert的过期证书的解决方法,从https://robindotnet.wordpress.com/2010/01/26/how-to-extend-an-existing-certificate-even-if-it-has-expired/

创建具有相同公钥/私钥对的新版本

所以我的想法是创建具有新过期日期的旧证书的软件包,一旦用户运行此软件包,它将卸载以前的版本并使用新证书从不同的URL安装新版本。

所以,我试图运行RenewCert可执行文件,但我没有成功。我从Cliff Stanford的网站http://may.be/renewcert/下载并构建了该项目,我收到了这个错误:

  

PFXImportCertStore失败,错误0x56:指定的网络   密码不正确。

然后我卡住了......所以根据Robin的说法,如果我的目标框架是.Net 4.0,我应该没有问题,但看起来并非如此。我使用的是Visual Studio 2012,我的项目的目标框架是.net 4.0,它也包含在先决条件中。该项目从3.5框架更新到近2年前的4个。也许这就是问题?

好的,我的问题是:如何解决这个问题?有没有更简单的方法,只需使用常规Clickonce?如果要进行卸载/安装,如何正确更改过期的证书以创建程序包?如果我的目标框架是.net 4,为什么不起作用?

提前致谢

0 个答案:

没有答案