`
marlboro027
  • 浏览: 54225 次
  • 性别: Icon_minigender_1
  • 来自: 陕西
社区版块
存档分类
最新评论

通过WEB页面自动发布客户端软件

    博客分类:
  • ocx
阅读更多
作为软件产品发布的途径之一,开发人员应该了解通过 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生成的非可信证书可能会产生警告或安装失败。

分享到:
评论

相关推荐

    获取客户端MAC地址Demo已经使用说明

    通过安装客户端控件在web页面上获取客户端mac地址的demo,可以自动过滤虚拟机的mac地址。

    python与web自动化基础试题(含答案).docx

    C A、产品处于概要设计阶段 B、产品处于开发阶段 C、系统为浏览器/服务器架构 D、系统为移动客户端/服务器架构 2、以下哪一个不是页面元素的常用标签?B A、input B、name C、td D、img 3、以下不属于xpath用于查找...

    web页面模块化异步渲染struts-gpipe.zip

    struts-gpipe 提供了将 groovy 引入 struts java web 项目的功能, web页面模块化异步渲染。 这个项目的初衷是为了将groovy引入我们的struts web项目,在开发的过程中,发现有跟多可以做的是全,不过在最初的版本,...

    PowerTCP Web Tool – 支持网络通信与传输的专业控件

    该工具可以用来自动提交web forms、读取web页面内容、在web服务器上放置文件或从web服务器读取文件、安排/检索web页面内容、生成站点树状结构,或者用于需要与web服务器通信的其它应用程序。 用户可以通过HTTP和...

    TMS WEB Core for RAD Studio 10.3

    是的,除了使用Delphi IDE表单设计器来设计web页面的WYSIWYG设计,您还可以使用HTML模板文件和使用CSS创建页面。您可以轻松地将HTML页面中的UI HTML元素链接到Delphi IDE表单设计器上,并使用IDE来创建UI控制逻辑和...

    WebOA网络办公自动化系统 v19.4.zip

    客户端通过浏览器访问即可以实现网络办公自动化(无纸化办公)。系统侧重“信息共享、文档管理、数据收集、事务审批”四个方面,自带网站平台,支持手机登录。 运行环境: Internet 信息服务(IIS)、ASP.NET 4.0、...

    Acunetix Web Vulnerability Scanner( 简称AwVS )是一款知名的Web网络漏洞扫描工具,它通过网络爬虫测试你的网站安全,检测

    a)、自动的客户端脚本分析器,允许对Ajax和Web 2.0应用程序进行安全性测试 b)、业内最先进且深入的SQL 注入和跨站脚本测试 c)、高级渗透测试工具,例如HTTP Editor 和HTTP Fuzzer d)、可视化宏记录器帮助您轻松测试...

    版本自动更新程序及3种实现策略

    C/S程序是基于客户端和服务器的,在客户机编译新版本后将文件发布在更新服务器上。然后建立一个XML文件,该文件列举最新版本号和所有文件及文件最后修改日期。如文件较多可以通过工具自动建立XML文件。当某客户机...

    Apache安装包+C语言开发页面+CGI

    (1)Web 客户端的浏览器将URL的第一部分解码与Web服务器相连。 (2)Web 浏览器将URL的其余部分提供给服务器。 (3)Web 服务器将URL转换成路径和文件名。 (4)Web 服务器发送 HTML 和别的组成请求页面的文件给...

    即时通讯客户端、服务器端源码

    3、辅助的上传文件的Web应用:考虑到开发的便利性,采用了在软件内部来调用一个 部署在IIS上的上传文件页面来实现发送文件的功能,上传插件使用的是Plupload-2.1.2。 由于软件采用了内嵌WebKit的方式开发,并且对...

    email:又一个 Web 邮件客户端

    下载解压之后,在终端里面直接执行即可,如果正常启动成功,然后打开浏览器,访问: 就可以看到设置页面。 第一次访问的时候会自动跳转到设置页面,此时需要配置一些账户的信息,如果是 baidu.com 或者 126.com 的...

    MF00278-即时通讯客户端源码.zip

    3、辅助的上传文件的Web应用:考虑到开发的便利性,采用了在软件内部来调用一个 部署在IIS上的上传文件页面来实现发送文件的功能上传插件使用的是Plupload-2.1.2。  由于软件采用了内嵌WebKit的方式开发,并且对...

    Login-EastMoney:模拟登陆东方财富web交易客户端

    模拟登陆东方财富web交易客户端 主要基于部分Js的第三 library 模拟浏览器操作 基于promise的HTTP 库 随便找的一个打码平台 环境 腾讯云2c4g+centos7.5 node@v9.3.0+puppeteer@v2.1.0+axios tips puppeteer的安装...

    适合做网站后台的DWZ富客户端框架(jQuery RIA framework)

    DWZ富客户端框架设计目标是简单实用、扩展方便、快速开发、RIA思路、轻量级 DWZ支持用html扩展的方式来代替javascript代码, 基本可以保证程序员不董javascript, 也能使用各种页面组件和ajax技术. 如果有特定需求也...

    单页面和多页面开发及应用

    它具有比Angular、Ember或ReactJS更简单的数据绑定特性且使用--Distributed Data Protocol和一个发布/订阅来自动将数据更改传播到客户端,无需开发人员编写任何同步代码。全栈反应确保从数据库到模板的所有层都可以...

    Acunetix Web Vulnerability Scanner

     AcuSensor 技术 自动的客户端脚本分析器,允许对 Ajax 和 Web 2.0 应用程序进行安全性测试。 业内最先进且深入的 SQL 注入和跨站脚本测试 高级渗透测试工具,例如 HTTP Editor 和 HTTP Fuzzer   可视化宏记录器...

    sshwifty:Web SSH和Telnet(WebSSH和WebTelnet客户端):crystal_ball:

    Sshwifty Web SSH和Telnet客户端 Sshwifty是专为Web设计的SSH和Telnet连接器。 它可以部署在您的计算机或服务器上,以为任何兼容(标准)的Web浏览器提供SSH和Telnet访问接口。 安装 二进位 编译的二进制文件可以在...

    PHP与Web页面交互 -文件上传和下载.ppt

    * PHP与Web页面交互 -----文件上传和下载 课程内容 文件上传 文件下载 一、文件上传 文件上传从本质上讲,就是将表单数据的一部分提交到服务器端。只是因为其数据类型(字节流或二进制流)不一样,从而导致在服务器...

    H5实现web调用摄像头在线照相

    web页面在线照相,在线调用客户端摄像头进行拍照,同时支持手机登陆网页调用手机摄像头进行拍照,目前测试用的chrome浏览器,其他的暂时没有测试,欢迎大家提意见,后期会持续更新

    桃源网络硬盘.Net v5.4 for .net 2.0/3.0/3.5

    67.支持客户端软件管理。 68.分简体版、繁体版、英文版三种版本。 69.可与《桃源相册管理系统》的用户进行整合。 70.标签及用户和文件信息的参数调用,可单独组合设计前台展示页面。 71.自带插件配置接口,支持插件...

Global site tag (gtag.js) - Google Analytics