作为软件产品发布的途径之一,开发人员应该了解通过 WEB 页面发布客户端软件的基本方法和流程。发布过程涉及到软件模块签名、安装脚本和打包过程,具体流程如下:
1.获取或生成一个软件出版证书(本文通过自已生成数字证书进行演示)
2.使用证书对需要发布的软件模块进行数字签名(建议,可省略)
3.编写INF安装脚本,并随同软件模块打包到CAB文件
4.对CAB文件进行数字签名
5.通过OBJECT CODEBASE HTML标记在WEB页面中嵌入CAB引用
在开始这个过程前,先准备好所需的工具:
Cabarc.exe - 用于打包生成 CAB 文件
Makecert.exe - 生成签名CAB文件的数字证书
Cert2Spc.exe - 生成出版商说明文件
Signtool.exe - 数字签名向导
VS2005中,这些工具都可以在 Microsoft Visual Studio 8\Common7\Tools\Bin 目录下找到。
以一个OCX发布为例(Target.ocx依赖于reiler.dll),整个流程可以以一个批处理过程完成:
rem 生成 CAB,文件顺序必须与 INF 文件中相同
CABARC -s 6144 n Client.CAB Target.ocx relier.dll Client.INF
rem 生成证书 sk:私钥 ss:描述 n:CN=公司名称 -m:有效月数 证书名称:CERT.cer
MAKECERT -sk Clientsk -ss “Client Certification” -n CN=”Organization Description” Client.cer
rem 生成出版商说明文件
CERT2SPC Client.cer Client.spc
rem 数字签名向导
signtool signwizard
rem 应用在网页中,注意正确的CLSID和CODEBASE版本号,否则可能每次都会执行安装过程
上面的流程中我省略了对模块Target.ocx和relier.dll的数字签名过程,这个过程也可以通过 signtool signwizard来完成。下面给出Client.INF的脚本内容:
[version]
; 不要修改 signature,在 NT 和 Win95 中为 CHICAGO
signature=”$CHICAGO$”
AdvancedINF=2.0
[Add.Code]
Target.ocx = Target.ocx
relier.dll = relier.dll
; 注意上面的排列顺序应该是逆序的,即前面的文件可以依赖于后面的文件
;11 系统目录(System32); 10 Windows目录(Windows/WinNT)
; 下面的顺序则相反,根据依赖关系将依赖最少的放在最前面
[relier.dll]
file-win32-x86=thiscab
DestDir = 11
[Target.ocx]
file-win32-x86=thiscab
clsid={A13E4E95-3C46-437F-9339-37656D97C238}
;FileVersion=1,0,0,0
DestDir = 11
RegisterServer=yes
INF文件的规范参考http://technet.microsoft.com/zh-cn/library/cc768164(en-us).aspx,通常对于设备驱动程序而言,所使用的INF文件会比普通应用程序要复杂得多。
当用户访问WEB页面时,浏览器检测到OBJECT标记,根据指定的CLSID和CODEBASE版本号进行检测,如果本地版本号低于CODEBASE中的版本号则下载CAB并通过INF文件执行安装过程。下面给出signtool signwizard的过程:
步骤1:选择需要签名的CAB文件
步骤2:签名方式选择自定义
步骤3:证书“从文件选择”,选择在批处理流程中已经生成的PKCS#7证书 Client.spc
步骤4:私钥中选择“CSP中的私钥”,然后从“密钥容器”中选择在批处理流程中已经生成的私钥Clientsk
步骤5:选择一种散列算法,通常情况下我们使用SHA-1
步骤6:使用默认的“证书路径中的所有证书”,这样如果你的证书来自于CA,那么在客户系统中证书将会被认为是可信的
步骤7:填写数据描述,指定安装包描述信息(将会在安装时显示给用户)和web参考地址
步骤8:略过时间戳,即可完成数字签名
最后在WEB页面中嵌入OBJECT标签:
<OBJECT ID=”ClientDemo” ClassID=’CLSID:D18624C6-4939-47D1-8EFC-CA73B9061B55′ CODEBASE=’Client.CAB’ WIDTH=0 HEIGHT=0></OBJECT>
需要注意的是,是否能够成功安装还与用户的浏览器设置相关,在默认情况下,需要使用可信的CA证书能够保证安装顺利完成,而自己使用makecrt或openssl生成的非可信证书可能会产生警告或安装失败。
分享到:
相关推荐
通过安装客户端控件在web页面上获取客户端mac地址的demo,可以自动过滤虚拟机的mac地址。
C A、产品处于概要设计阶段 B、产品处于开发阶段 C、系统为浏览器/服务器架构 D、系统为移动客户端/服务器架构 2、以下哪一个不是页面元素的常用标签?B A、input B、name C、td D、img 3、以下不属于xpath用于查找...
struts-gpipe 提供了将 groovy 引入 struts java web 项目的功能, web页面模块化异步渲染。 这个项目的初衷是为了将groovy引入我们的struts web项目,在开发的过程中,发现有跟多可以做的是全,不过在最初的版本,...
该工具可以用来自动提交web forms、读取web页面内容、在web服务器上放置文件或从web服务器读取文件、安排/检索web页面内容、生成站点树状结构,或者用于需要与web服务器通信的其它应用程序。 用户可以通过HTTP和...
是的,除了使用Delphi IDE表单设计器来设计web页面的WYSIWYG设计,您还可以使用HTML模板文件和使用CSS创建页面。您可以轻松地将HTML页面中的UI HTML元素链接到Delphi IDE表单设计器上,并使用IDE来创建UI控制逻辑和...
客户端通过浏览器访问即可以实现网络办公自动化(无纸化办公)。系统侧重“信息共享、文档管理、数据收集、事务审批”四个方面,自带网站平台,支持手机登录。 运行环境: Internet 信息服务(IIS)、ASP.NET 4.0、...
a)、自动的客户端脚本分析器,允许对Ajax和Web 2.0应用程序进行安全性测试 b)、业内最先进且深入的SQL 注入和跨站脚本测试 c)、高级渗透测试工具,例如HTTP Editor 和HTTP Fuzzer d)、可视化宏记录器帮助您轻松测试...
C/S程序是基于客户端和服务器的,在客户机编译新版本后将文件发布在更新服务器上。然后建立一个XML文件,该文件列举最新版本号和所有文件及文件最后修改日期。如文件较多可以通过工具自动建立XML文件。当某客户机...
(1)Web 客户端的浏览器将URL的第一部分解码与Web服务器相连。 (2)Web 浏览器将URL的其余部分提供给服务器。 (3)Web 服务器将URL转换成路径和文件名。 (4)Web 服务器发送 HTML 和别的组成请求页面的文件给...
3、辅助的上传文件的Web应用:考虑到开发的便利性,采用了在软件内部来调用一个 部署在IIS上的上传文件页面来实现发送文件的功能,上传插件使用的是Plupload-2.1.2。 由于软件采用了内嵌WebKit的方式开发,并且对...
下载解压之后,在终端里面直接执行即可,如果正常启动成功,然后打开浏览器,访问: 就可以看到设置页面。 第一次访问的时候会自动跳转到设置页面,此时需要配置一些账户的信息,如果是 baidu.com 或者 126.com 的...
3、辅助的上传文件的Web应用:考虑到开发的便利性,采用了在软件内部来调用一个 部署在IIS上的上传文件页面来实现发送文件的功能上传插件使用的是Plupload-2.1.2。 由于软件采用了内嵌WebKit的方式开发,并且对...
模拟登陆东方财富web交易客户端 主要基于部分Js的第三 library 模拟浏览器操作 基于promise的HTTP 库 随便找的一个打码平台 环境 腾讯云2c4g+centos7.5 node@v9.3.0+puppeteer@v2.1.0+axios tips puppeteer的安装...
DWZ富客户端框架设计目标是简单实用、扩展方便、快速开发、RIA思路、轻量级 DWZ支持用html扩展的方式来代替javascript代码, 基本可以保证程序员不董javascript, 也能使用各种页面组件和ajax技术. 如果有特定需求也...
它具有比Angular、Ember或ReactJS更简单的数据绑定特性且使用--Distributed Data Protocol和一个发布/订阅来自动将数据更改传播到客户端,无需开发人员编写任何同步代码。全栈反应确保从数据库到模板的所有层都可以...
AcuSensor 技术 自动的客户端脚本分析器,允许对 Ajax 和 Web 2.0 应用程序进行安全性测试。 业内最先进且深入的 SQL 注入和跨站脚本测试 高级渗透测试工具,例如 HTTP Editor 和 HTTP Fuzzer 可视化宏记录器...
Sshwifty Web SSH和Telnet客户端 Sshwifty是专为Web设计的SSH和Telnet连接器。 它可以部署在您的计算机或服务器上,以为任何兼容(标准)的Web浏览器提供SSH和Telnet访问接口。 安装 二进位 编译的二进制文件可以在...
* PHP与Web页面交互 -----文件上传和下载 课程内容 文件上传 文件下载 一、文件上传 文件上传从本质上讲,就是将表单数据的一部分提交到服务器端。只是因为其数据类型(字节流或二进制流)不一样,从而导致在服务器...
web页面在线照相,在线调用客户端摄像头进行拍照,同时支持手机登陆网页调用手机摄像头进行拍照,目前测试用的chrome浏览器,其他的暂时没有测试,欢迎大家提意见,后期会持续更新
67.支持客户端软件管理。 68.分简体版、繁体版、英文版三种版本。 69.可与《桃源相册管理系统》的用户进行整合。 70.标签及用户和文件信息的参数调用,可单独组合设计前台展示页面。 71.自带插件配置接口,支持插件...