ClickOnce 部署克服的主要问题 (清单签名的.pfx格式数字证书、"安装"后无反应的处理办法)

摘要:
=============================================makecert工具和cert2spc工具随附。NET框架。pvkimprt工具的下载地址如下http://download.microsoft.com/download/vba50/Utility/1.0/NT5/EN-US/pvkimprt.exe3Clickonce签名场景:用于生产环境的项目已升级。在ClickOnce发布期间,发现签名已过期。站点工程师重新生成签名,然后将其释放。释放后,所有客户端都无法更新,并提示签名错误。解决方案:1。创建新签名并使用新签名创建ClickOnce。所有客户端将删除原始程序并重新使用新的ClickOnce安装程序进行安装。

1、ClickOnce 部署 客户端点"安装"后无反应的处理办法:

  ClickOnce 部署方式在客户端是由此文件支持的 dfshim.dll.. 在.net 2.0 framework 安装时,与 .application文件类型相关联... 浏览器在下载 .application文件后,会由 dfshim.dll交由 dfsvc.exe 打开,我们就会看到ClickOnce的安装界面了.....

  因此:若出现客户端点“安装”没有任何反应的情况,我们可以使用右键 另存为 功能下载 .application文件,然后选中.application文件使用右键 打开方式 选择 dfsvc.exe 打开此文件,即可进行客户端的安装....

2、创建为ClickOnce清单签名的.pfx格式数字证书

    使用vs2005自动创建的.pfx数字证书默认有效期只有一年,并且“颁发者”、“颁发给”均为当前机器名和当前登陆用户名的组合,其实我们完全可以创建更友好的.pfx数字证书。

打开Microsoft .NET Framework 的SDK命令提示,按以下步骤操作:

1、创建一个自我签署的X.509证书(.cer)和一个.pvk私钥文件,用到makecert工具,命令如下:

makecert -r -n "CN= cncxz " -b 01/01/2005 -e 01/01/2018 -sv myselfName.pvk myselfName.cer

按提示设置私钥密码(也可以不使用密码)即可在当前目录生成相关文件

(注解:CN(所有者的名称) , myselfName.pvk为签名的文件名)

2、利用X.509证书(.cer)创建发行者证书 (.spc),用到cert2spc工具,命令如下:

cert2spc myselfName.cer myselfName.spc

3、从.pvk和.spc格式转换成.pfx格式,用到pvkimprt工具,命令如下:/Files/Fooo/pvkimprt.rar

pvkimprt -pfx myselfName.spc myselfName.pvk

(请将pvkimprt 下载解压至该目录:D:\Program Files\Microsoft Visual Studio 8\VC ,否则提示访问拒绝,即证书路径不对  ,  注,创建时证书也在该目录下ClickOnce 部署克服的主要问题 (清单签名的.pfx格式数字证书、"安装"后无反应的处理办法)第1张)

按提示操作可导出.pfx证书,若第1步设置了私钥密码,此处需要输入验证

4、在vs项目的ClickOnce清单签名的证书设置处点击“从文件选择”浏览定位到第3步导出的.pfx证书,此处需要验证第3步中设置的证书私钥密码。

=================================================
makecert工具和cert2spc工具.NET Framework自带,pvkimprt工具下载地址如下
http://download.microsoft.com/download/vba50/Utility/1.0/NT5/EN-US/pvkimprt.exe

3、clickonce签名

场景:用于生产环境的项目进行系统升级,在发布ClickOnce过程中发现签名已过期,现场工程师重新生成了一个签名,然后进行发布,发布完成后,所有客户端无法更新,提示签名错误。
问题:VS2005做年签名只有一年期限,所以很容易在维护期内就过期了,如果新做签名结果会造成客户端验证签名出错无法更新。

解决办法:
     1、新做一个签名,使用新的签名做ClickOnce,所有客户端将原来程序删除,重新使用新的ClickOnce安装程序进行安装。
         (此方法太可耻了,如果再有升级的话,可能还会有这问题,同时ClickOnce也得改名叫ClickOneYear了)。

     2、利用原有签名,延长有效时间。
          (中文)http://support.microsoft.com/kb/925521/zh-cn
           (英文)http://support.microsoft.com/kb/925521/en-us

          有此朋友发现过这样的问题,也知道解决办法,但如果机器上没装VC++可能操作起来也不方便,现编译完成一份,各位可以下载:
         https://files.cnblogs.com/spymaster/RenewCert.rar
         使用方法:到命令窗口,输入
         renewcert <OldCertificate>.pfx <NewCertificate>.pfx ""CN=<NewCertificateName>"" <Password>
         好了,新签名的有限期是5年。

      3、项目之初就做一个长效的签名。
          http://www.cnblogs.com/cncxz/archive/2007/03/15/675937.html

免责声明:文章转载自《ClickOnce 部署克服的主要问题 (清单签名的.pfx格式数字证书、"安装"后无反应的处理办法)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇linux mv命令详解log4j2文件配置下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Android应用程序签名详解 简介

转自: http://blog.csdn.net/lyq8479/article/details/6401093   本文主要讲解Android应用程序签名相关的理论知识,包括:什么是签名、为什么要给应用程序签名、如何给应用程序签名等。 1、什么是签名?      如果这个问题不是放在Android开发中来问,如果是放在一个普通的版块,我想大家都知道签名...

[基础技能] 安全技术——数字签名与数字证书以及其中涉及到的相关伪造问题

1、首先总结一下数字签名的使用规则和相关流程 讲解比较详细的网络日志可以参考:这里以及这里,我这里只做一些自己的总结。 一般来说现在的加密领域或者是认证体系中,都是在使用双秘钥:公钥和私钥,其中公钥用来加密信息,私钥用来数字签名。任何人都可以生成自己的(公钥,私钥)对,所以为了防止有人散布伪造的公钥骗取信任,就需要一个可靠的第三方机构来生成经过认证的(公钥...

数字签名(代码签名)流程

数字签名(代码签名)流程 Authenticode : 这里翻译为数字认证代码。 code sign : 字面的翻译为代码签名,但是通常的我们称为数字签名,以下的文中均称为数字签名。一 数字认证码如果你是软件开发人员,你可能已经知道windows系统和一些浏览器(例如IE,Firefox)使用一种称为数字认证代码的技术来标识软件的发行商,来检查软件没有被...

PKI/CA工作原理及架构

https://www.jianshu.com/p/c65fa3af1c01 相关概念 PKI:Public Key Infrastructure,公钥基础设施。 CA:Certificate Of Authority,认证中心。 数字证书:提供了一种发布公钥的简便途径; 一个数字证书包括:拥有者身份信息、公钥、CA数字签名、有效期等其他信息。 数字...

【腾讯Bugly干货分享】Android 新一代多渠道打包神器

关于作者: 李涛,腾讯Android工程师,14年加入腾讯SNG增值产品部,期间主要负责手Q动漫、企鹅电竞等项目的功能开发和技术优化。业务时间喜欢折腾新技术,写一些技术文章,个人技术博客:www.ltlovezh.com 。 ApkChannelPackage是一种快速多渠道打包工具,同时支持基于V1和V2签名进行渠道打包。插件本身会自动检测Apk使用的签...

openssl知识点总结

openssl知识点总结 实践总结见之前博客:http://www.cnblogs.com/Jclemo/p/6091201.html 简介 openssl是一个功能丰富且自包含的开源安全工具箱。它提供的主要功能有:SSL协议实现(包括SSLv2、SSLv3和TLSv1)、大量软算法(对称/非对称/摘要)、大数运算、非对称算法密钥生成、ASN.1编解码库、...