WPF 浏览器程序 证书制作与客户端自动下载安装
来源:互联网 发布:linux系统命令及shell 编辑:程序博客网 时间:2024/04/28 13:12
以下是总结的WPF Browser Application证书制作、发布与自动下载安装完整流程:
</pre><p>一、证书制作</p><p>在建立WPFBrowser Application项目的时候系统会自动给程序创建一个证书,可以在项目——属性——签名——中进行查看,如下图:</p><img src="http://img.blog.csdn.net/20150720095621700?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" /><p></p><p>1、 系统创建证书</p><p>在项目——属性——签名——创建测试证书如下</p><img src="http://img.blog.csdn.net/20150720095714031?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" /><p></p><p>输入证书密码,选择签名算法</p><img src="http://img.blog.csdn.net/20150720095759861?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" /><p></p><p>导出证书</p><p>更多详细信息——详细信息——复制到文件——确定</p><img src="http://img.blog.csdn.net/20150720095840017?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" /><p><img src="http://img.blog.csdn.net/20150720095910214?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" /></p><p>最后一步一步导出证书</p><p>1、 自己创建证书</p><p>下载附件<a target=_blank target="_blank" href="http://files.cnblogs.com/cubean/TestProjectpfx.rar"><span style="color: black;">TestProjectpfx.rar</span></a>解压后得到3个exe文件,1个bat文件。</p><p style="background:#F5FAFE">用文本编辑器打开makeTestpfx.bat文件:</p><p>makecert -r -n "CN=Enterprise Name" -b 01/01/2009 -e01/01/2011 -sv TestPrj.pvk TestPrj.cer</p><p>cert2spc TestPrj.cer TestPrj.spc</p><p>pvkimprt -pfx TestPrj.spc TestPrj.pvk</p><p>将"CN=EnterpriseName"中的EnterpriseName换成自己的公司名称,后面是证书有效起止日期,再后面就是要制作生成的证书名称,有TestPrj.pvkTestPrj.cer TestPrj.spc三种,需要改名字的话就把这些TestPrj替换掉就可以。</p><p>3) 在控制台中执行makeTestpfx.bat文件,会首先弹出输入私钥密码对话框,输入密码2次点Ok,或者不输入密码直接点None;接着会弹出导出证书对话框,直接Next,然后选择导出私钥,下一步默认导出pfx证书,下一步输入密码(WindowsXP中可以不输入密码,而Vista和Windows7中必须输入密码),然后保存该pfx文件,证书导成功。</p><p>替换默认证书</p>项目——属性——签名——从文件选择——选择生成的证书文件——输入密码——导入后可以查看信息信息<p><img src="http://img.blog.csdn.net/20150720095945413?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" /></p><p></p><p>一、让程序自动下载并安装证书</p><p>1、 创建自动安装程序</p><p>建立一个控制台应用程序</p><pre name="code" class="csharp">using System;using System.Net;using System.Windows.Forms;using System.Security.Cryptography.X509Certificates;namespace CertificateInstaller{ class Program { static void Main(string[] args) { try { if (args.Length > 0) { WebClient webclient = new WebClient(); byte[] certificatefile = webclient.DownloadData(args[0]); if (certificatefile.Length > 0) { InstallCertificate(StoreName.AuthRoot, certificatefile); InstallCertificate(StoreName.TrustedPublisher, certificatefile); } else { ShowErrorMessage("Can't download the certificate file."); } } } catch (System.Exception ex) { ShowErrorMessage(ex.Message); } } static void InstallCertificate(StoreName storageName, byte[] certificatefile) { X509Certificate2 certificate = new X509Certificate2(certificatefile); X509Store store = new X509Store(storageName, StoreLocation.LocalMachine); store.Open(OpenFlags.ReadWrite); store.Remove(certificate); store.Add(certificate); store.Close(); } static void ShowErrorMessage(string strErrorMessage) { MessageBox.Show(strErrorMessage, "Certificate Installation Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }}
将程序编译生成EXE;
1、 制作程序必备组件
找到目录C:/ProgramFiles/Microsoft SDKs/Windows/v6.0A/Bootstrapper/Packages其中Program Files有可能是Program Files (x86);v6.0A有可能是别的版本如v7.0A等
在目录下面复制一个安装主键的文件夹并进行重命名,如复制WindowsInstaller3_1文件夹改为Test,
复制刚才生成的EXE到改文件夹
修改该文件夹中的Product.xml文件为:
<?xml version="1.0" encoding="utf-8" ?><Product xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper" ProductCode="CertificateInsteraller"> <PackageFiles CopyAllPackageFiles="true"> <PackageFile Name="CertificateInstaller.exe" /> </PackageFiles> <Commands Reboot="Immediate"> <Command PackageFile="CertificateInstaller.exe" Arguments= 'http://XXX/xxx.cer' EstimatedInstallSeconds="30" > <ExitCodes> <ExitCode Value="0" Result="Success"/> <ExitCode Value="1641" Result="SuccessReboot"/> <ExitCode Value="3010" Result="SuccessReboot"/> <DefaultExitCode Result="Fail" FormatMessageFromSystem="true" String="GeneralFailure" /> </ExitCodes> </Command> </Commands></Product>
其中Arguments后面应该为客户端可以下载证书文件的的地址;
CertificateInstaller.exe应该是前面生成的exe的文件名
修改该文件夹下一级文件夹下的Package.xml为
<?xml version="1.0" encoding="utf-8" ?><Package xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper" Name="DisplayName" Culture="Culture"> <Strings> <String Name="DisplayName">My Certificate Insteraller</String> </Strings></Package>My Certificate Insteraller为添加必备组件是显示的名称,如
一、将自动安装程序进行打包
WPF Browser Application应用程序——属性——发布——系统必备——选择刚才的组件
一、设置发布选项
1、 设置发布信息
项目——属性——发布——选项——
设置相关发布信息
这里面的部署网页一定要设置一个,最后点击发布后通过浏览器访问上面的发布页面
点击运行就会自动下载和安装证书;
注意:这里的发布网页要设置,不然不会自动生成,生成一次后 就可以进行编辑编辑成自己的压面
证书下载安装可以使用上面的方式、也可以设置部署页面后在这个部署页面中添加一个下载按钮等方式来下载并手动安装。
0 0
- WPF 浏览器程序 证书制作与客户端自动下载安装
- 浏览器自动安装证书
- 浏览器自动安装根证书
- 自动为客户端安装根证书
- centos+tomcate + https协议 SSL证书制作、部署支持iphone、ipa下载安装.ipa程序
- RAR制作自动安装程序
- 自动下载安装更新程序
- IOS下载程序自动安装
- VS2010制作桌面客户端程序安装包
- 宽带客户端下载与安装
- VISUALSVN SERVER下载安装流程 及ca证书制作教程
- 终结者:HTTPS在Tomcat中的使用(二)——制作安全证书与浏览器端安全证书的安装
- WPF 系统托盘制作方案与窗体自动隐藏
- 利用AutoIt制作自动安装程序
- WCF 客户端证书安装
- 客户端更新程序的下载和安装
- 让WPF Browser Application自动下载并安装数字证书
- 诺基亚塞班证书制作下载
- mybatis 源码系列 组件之 plugin
- OFDM之交织器/解交织器IP核调用
- 【PHP学习】数组
- 查找算法小结
- Static import
- WPF 浏览器程序 证书制作与客户端自动下载安装
- Android 中的 Service 全面总结
- 进程通信
- 设计模式_原型模式
- jsp页面获取路径
- 超长距离超大容量波分传输应用
- ZStack协议按键处理流程分析
- twemproxy源码分析之二 nc_run
- 提高效率—编程中的技巧