[转]给控件做数字签名

From: http://www.mzwu.com/article.asp?id=1118

 

我做了一个WebRtf的控件,主要是封装了RichtextBox控件,增加一些方法,如打印等,用来实现在Web上显示RTF文档的功能。 编译成WebRtf.ocx,在VB中测试成功,为了能在Web上使用,我们需要做两个工作:

一是将其打包成Internet发布包
二是将这个包进行数字签名

我一步一步抓图进行讲解,如果对于第一个部分你已经熟悉,可以直接略过进入第二部分,图上已经相当清楚,我只在必要的地方加一点描述。

一、将控件打包为Web发布包













为了包文件的完整性,建议将所有的文件设置为"Include in this cab",就是这个包里包含所有的依存文件,防止文件丢失导致控件不能正常运行









OK,第一部分完成了,注意这个打包文件旁边还有个htm文件,这个可以用来参考作具体的WEB应用的

复制内容到剪贴板程序代码 程序代码
<OBJECT ID="myDoc"
CLASSID="CLSID:753C5D11-7E87-4C54-B4E7-548F1251D7BA"
CODEBASE="WebRTF.CAB#version=1,0,0,7">
</OBJECT>

二、生成证书文件

准备好工具包,微软的IE SDK里包含这些工具,
但是那个开发包太过庞大,而且操作起来也稍微得繁琐了一些,你只需要下载这么几个文件就可以了
文中提到的数字签名工具包,请在此处下载
http://www.mzwu.com/pic/20071006/SignTool.rar



进入DOS模式下该目录
为了便于操作,建议你将这个工具包放在磁盘根目录下,目录名称起得简单些
输入以下命令,生成一个名为babyt.cer的证书

复制内容到剪贴板程序代码 程序代码
makecert /sv "BabytOk.PVK" /n "CN=Facesun.cn,E=Babyt-163-com,O=阿泰" babyt.cer

其中各参数的含义,使用
makecert -?
makecert -!
可以获得详尽的帮助,在这里就不说了

在弹出的窗口输入密码保护你的证书,这个密码要在后面反复使用多次,所以要记住了





输入完成后界面上会提示Succeeded,在当前的目录下也生成了babyt.cer和babytOK.pvk两个文件



三、进行数字签名

































至此,数字签名完成
在DOS窗口下,输入

复制内容到剪贴板程序代码 程序代码
chktrust.exe E:\myTest\08\Package\WebRTF.CAB

对我们的成果进行检验





此时成功,对了,这个“恭喜”的红字是我做上去的,可别到时候这俩字出不来还觉得奇怪
最后就是发布了
将这两个文件拷贝到WEB目录下进行测试,出现证书安装提示后按是安装即可





下面就是我的控件在WEB上正常显示的结果.



怎么样了,会了吗?

Dnawo 2007-10-07补充:

1.MakeCert.exe生成的是测试证书,仅做测试用,使用时必须开启浏览器"对没有标记为安全的ActiveX控件进行初始化和脚本运行"和"下载未签名的ActiveX控件",否则浏览器将阻止ActiveX的下载,并显示"windows 已经阻止此软件因为无法验证发行者",点击开发商信息你会看到提示"由于当前的策略设置,该测试根不受信任;证书路径因此而终止“。



需要CA证书的朋友可到 http://www.ca365.com/申请,是免费的、使用期限为一年,申请后立刻得到证书。需要注意的是申请时要选择正确的电子证书用途,这边我们应选择"代码签名证书"!还要注意安装好证书后17步中应选择典型,就不会像22步中提示你要私钥文件!!

使用不同的证书都需要安装相应的根证书,对于根证书没有集成在浏览器的证书须手动安装根证书!自动安装ca365根证书的方法见: http://www.ca365.com/handbook14.asp

2.第14步后可以使用Cert2Spc.exe生成.spc文件,然后在第18步中使用它,生成命令为:Cert2Spc babyt.cer babyt.spc

3.可以的话尽量加时间戳,它非常重要,添加时间戳后,即使您的代码签名证书已经过期,但由于您的代码是在证书有效期内签名的,则时间戳服务保证了此代码仍然可信,最终用户仍然可以放心下载,使得即使代码签名证书已经过期,您也无需重签和重新发布已经签名的代码。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/406853.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mybatis使用详解

简介 MyBatis是一款优秀的持久层框架&#xff0c;它支持普通SQL查询&#xff0c;存储过程和高级映射。MyBatis通过简单的XML或注解用于配置和原始映射&#xff0c;将接口和Java的POJOs&#xff08;Plain Ordinary Java Object&#xff0c;普通的Java对象&#xff09;映射成数据…

linux ubuntu 安装jdk

junluobjjunluobj:~$sudo mkdir /usr/lib/jvmwww.linuxidc.comlinuxidc:~$tar zvxf jdk-8u20-linux-x64.tar.gzwww.linuxidc.comlinuxidc:~$sudo mv jdk1.8.0_20/ /usr/lib/jvm/ 设置JDK环境变量&#xff1a; www.linuxidc.comlinuxidc:~$sudo vim ~/.profile #set jdk envex…

学***先学什么?

我是一个新人&#xff0c;有老人能跟我说下学***要先学什么东西么&#xff1f;本人好学上进。希望有人可以指教下&#xff0c;在此谢过转载于:https://blog.51cto.com/access/171983

前端布局之网格gird布局(简单易懂)

grid网格布局 前言 弹性布局的文章很多&#xff0c;但是它是解决一维布局的&#xff0c;面对二维就显得无力了&#xff0c;此时我们就需要用到网格布局。&#xff08;ps&#xff1a;一维就是一列或者一行的布局&#xff0c;当你遇到九宫盒布局&#xff0c;此时涉及到列与行&am…

SAFEARRAY使用方法示例

From: http://blog.csdn.net/absurd/article/details/786822 SAFEARRAY使用方法示例 SAFEARRAY不是很好用&#xff0c;一些函数不太直观&#xff0c;一不小心就着了它的道。上次学习编写Google桌面插件时就遇到了麻烦&#xff0c;本来应该是vsa.vt VT_ARRAY | VT_BSTR&#xf…

几台WEB经常宕机,求分析原因

几台WEB服务器经常宕机&#xff0c;平时运行得好好的&#xff0c;负载也都在2以下&#xff0c;偶尔会突然负高上去就宕机&#xff0c;init 6也无法重启成功只能echo b>/proc/sysrq-trigger 硬重启才行,dmesg 没发现硬件方面有问题。从top相关信息来看&#xff0c;每次宕机现…

修复DBR的脚本

当今社会越来越依赖于计算机了&#xff0c;没事之余做了几个修复DBR的脚本(NTFS FAT32 exFAT)&#xff0c;这样有些操作就不用人工去操作了&#xff0c;1、节省时间 2、提高效率 3、降低人工操作的出错率。转载于:https://blog.51cto.com/haobinnan/172341

期待已久的VS2008 SP1 和.NET FRAMEWORK 3.5 SP1都出来了

期待已久的VS2008 SP1 和.NET FRAMEWORK 3.5 SP1都出来了 下载地址 Microsoft Visual Studio 2008 Service Pack 1 (iso) http://www.microsoft.com/downloads/details.aspx?displaylangzh-cn&FamilyID27673c47-b3b5-4c67-bd99-84e525b5ce61 Visual Studio 2008 Team Foun…

VUE3 项目自定义修改网页标题和图标

VUE3中&#xff0c;网页图标默认使用的是VUE自带的一个ico的图标&#xff0c;也是VUE的logo。那么作为我们自己开发的项目&#xff0c;如何自定义修改网页的图标和标题呢&#xff1f;很简单&#xff0c;下面就介绍一下。 1 标题修改 标题修改直接在项目的 /public/index.html…

IAsyncResult接口

#region 程序集 mscorlib.dll, v4.0.0.0 // C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\mscorlib.dll #endregionusing System.Runtime.InteropServices; using System.Threading;namespace System {// 摘要:// 表示异步操作的状…

开博了!

本人&#xff1a;喜素食&#xff0c;甚爱白菜&#xff0c;然RP尚有待提高&#xff0c;常被谓之“鸟人”也&#xff0c;故已“菜鸟”而自居。一日&#xff0c;本“菜鸟”东游&#xff0c;偶遇Linux&#xff0c;色心骤起&#xff0c;欲为课题之所用&#xff0c;然因资质尚浅&…

AES加密算法的详细介绍与实现

AES简介 高级加密标准(AES,Advanced Encryption Standard)为最常见的对称加密算法(微信小程序加密传输就是用这个加密算法的)。对称加密算法也就是加密和解密用相同的密钥&#xff0c;具体的加密流程如下图&#xff1a; 下面简单介绍下各个部分的作用与意义&#xff1a; 明文…

如何备份 Outlook Express 项

步骤1&#xff1a;将邮件文件复制到备份文件夹<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />步骤A&#xff1a;定位存储文件夹1. 启动Outlook Express。2. 单击“工具”&#xff0c;然后单击“选项”。3. 在“…

VC6获取硬盘序列号、型号、修订版本号

因为要做个读取硬盘参数信息的控件&#xff0c;所以在网上找了不少代码&#xff0c;但是自己作为一个初学者在使用别人代码时&#xff0c;总会发现有各种各样的问题&#xff1a; 1. 需要的头文件未写明 2. 有些定义未给出 3. 代码的开发环境未明&#xff0c;导致编译时出现“…

Android系统服务-WindowManager

WindowManager是Android中一个重要的服务 &#xff08;Service &#xff09;。WindowManager Service 是全局的&#xff0c;是唯一的。它将用户的操作&#xff0c;翻译成为指令&#xff0c;发送给呈现在界面上的各个Window。Activity会将顶级的控件注册到 Window Manager 中&am…

Linux:关于头文件的位置

十足的菜鸟问题&#xff0c;今天终于想通了一点点。 引子&#xff1a;通常在写代码时先要包含一通头文件&#xff0c;这些头文件们在什么地方呢&#xff1f;这个问题起源于课题中需要操作OK6410的PWM寄存器&#xff0c;查了许多文献说需要ioremap()映射&#xff0c;需要包含 a…