怎样给 ActiveX 控件签名并打包发布 - 免费web打印控件-web打印控件-Java Web打印控件 WEB下载控件 WEB文件路径选择控件 - 博客园 [ http://www.cnblogs.com/interdrp/archive/2009/04/14/1435991.html ] ...
怎样给 ActiveX 控件签名并打包发布
必备工具:
CabArc.Exe
Cert2Spc.Exe
makecert.exe
SetReg.Exe
signtool.exe(或者signcode.exe)
以及相关动态库,以上 文件 可到微软网站下载:
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/default.htm?p=/msdownload/platformsdk/sdkupdate/SDKInfo.htm
安装InternetDevelopmentSDK后,
第一步建立一个.inf 文件 ,样式如下:
[version]
signature="$CHICAGO$"
AdvancedINF=2.0
[Add.Code]
time.ocx=time.ocx
msvcrt.dll=msvcrt.dll
mfc42.dll=mfc42.dll
olepro32.dll=olepro32.dll
[time.ocx]
file-win32-x86=thiscab
clsid={DCF0768D-BA7A-101A-B57A-0000C0C3ED5F}
FileVersion=1,0,0,0
;DestDir=11;***
RegisterServer=yes
[msvcrt.dll]
FileVersion=4,20,0,6164
hook=mfc42installer
[mfc42.dll]
FileVersion=4,2,0,6256
hook=mfc42installer
[olepro32.dll]
FileVersion=4,2,0,6068
hook=mfc42installer
[mfc42installer]
file-win32-x86=http://activex.microsoft.com/controls/vc/mfc42.cab
run=%EXTRACT_DIR%/mfc42.exe
DestDir可以=10:Windows目录,
11:Windows/System(32)目录,
空:Occachedirectory
第二步将ActiveX控件及.inf 文件 打包进.cab,命令如下:
cabarc.exe-s6144NyourActiveX.cabyourActiveX.ocxyourActiveX.inf
第三步给.cab 文件 签名
1.setreg1true
2.makecertnewCert.cer-svprivatekey. pvk
生成newCert.cer和privatekey. pvk 两个 文件
3.Cert2SpcnewCert.cernewCert.spc
4.signtoolsignwizard
有图形界面的签名向导,按提示指定有关 文件 路径即可,其中的描述是控件的描述。
...
CabArc.Exe
Cert2Spc.Exe
makecert.exe
SetReg.Exe
signtool.exe(或者signcode.exe)
以及相关动态库,以上 文件 可到微软网站下载:
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/default.htm?p=/msdownload/platformsdk/sdkupdate/SDKInfo.htm
安装InternetDevelopmentSDK后,
第一步建立一个.inf 文件 ,样式如下:
[version]
signature="$CHICAGO$"
AdvancedINF=2.0
[Add.Code]
time.ocx=time.ocx
msvcrt.dll=msvcrt.dll
mfc42.dll=mfc42.dll
olepro32.dll=olepro32.dll
[time.ocx]
file-win32-x86=thiscab
clsid={DCF0768D-BA7A-101A-B57A-0000C0C3ED5F}
FileVersion=1,0,0,0
;DestDir=11;***
RegisterServer=yes
[msvcrt.dll]
FileVersion=4,20,0,6164
hook=mfc42installer
[mfc42.dll]
FileVersion=4,2,0,6256
hook=mfc42installer
[olepro32.dll]
FileVersion=4,2,0,6068
hook=mfc42installer
[mfc42installer]
file-win32-x86=http://activex.microsoft.com/controls/vc/mfc42.cab
run=%EXTRACT_DIR%/mfc42.exe
DestDir可以=10:Windows目录,
11:Windows/System(32)目录,
空:Occachedirectory
第二步将ActiveX控件及.inf 文件 打包进.cab,命令如下:
cabarc.exe-s6144NyourActiveX.cabyourActiveX.ocxyourActiveX.inf
第三步给.cab 文件 签名
1.setreg1true
2.makecertnewCert.cer-svprivatekey. pvk
生成newCert.cer和privatekey. pvk 两个 文件
3.Cert2SpcnewCert.cernewCert.spc
4.signtoolsignwizard
有图形界面的签名向导,按提示指定有关 文件 路径即可,其中的描述是控件的描述。
方法二:
下载这个
文件 :
signtools
1:生成密钥对,输入密码(后面要多次用到这个密码)
makecert /sv "3adisk. PVK " /n "CN=3Adisk.Net,E=55055.Com,O=独孤大侠" 3Adisk.cer
2:运行signcode,选择要签名的 文件 .
导入刚才生成的3adisk.cer,密钥选上一步生成的3adisk. PVK ,输入前面的密码.一路默认就可以了
3:测试生成的签名
chktrust xuploadfiles.cab ----后面这个 文件 就是要签名的 文件 了
免费的代码签名时间戳地址
VeriSign:
http://timestamp.verisign.com/scripts/timstamp.dll
Comodo: http://timestamp.comodoca.com/authenticode
GeoTrust/TrustCenter: http://www.trustcenter.de/codesigning/timestamp
Comodo: http://timestamp.comodoca.com/authenticode
GeoTrust/TrustCenter: http://www.trustcenter.de/codesigning/timestamp
方法三:
1。准备软件 InstallShield 的 PackageForTheWeb 4 (用来把DLL或者OCX打包成CAB的软件)
2。去 http://www.globalsign.net/ 申请DEMO版的证书,只能用一个月,不过是全球的,不错了。一月换一个吧。^^
3。根据提示 一共有8步来完成申请(其中大部分NEXT即可,其中要去收2次邮件,第2次邮件就发给你证书了)。
4。按照PackageForTheWeb 的提示完成制作你的CAB,他上面要求数字证书保护的时候可以不选。
5。打开 signcode.exe(这个程序装完PackageForTheWeb在他的安装目录下就有),按照提示,选择到你刚才申请的证书,next,最后一步要选择时间戳服务器,这里有个免费的: http://timestamp.verisign.com/scripts/timstamp.dll 写上去就完了,这样就完成了签名。
好了。现在一个带数字签名的CAB 文件 已经制作完成,在IE里不会出现不安全的控件,无法安装的现象了。
赶快自己去测试下吧。
小技巧:
Q:如何删除已经安装了的CAB内的控件。
A:1。找到主要的OCX或者DLL 文件 ,REGSVR32 xxx.ocx /u 卸载这个DLL
2。到C:/WINDOWS/Downloaded Program Files 下删除已经安装过的控件。就会出现再次安装了。
2。去 http://www.globalsign.net/ 申请DEMO版的证书,只能用一个月,不过是全球的,不错了。一月换一个吧。^^
3。根据提示 一共有8步来完成申请(其中大部分NEXT即可,其中要去收2次邮件,第2次邮件就发给你证书了)。
4。按照PackageForTheWeb 的提示完成制作你的CAB,他上面要求数字证书保护的时候可以不选。
5。打开 signcode.exe(这个程序装完PackageForTheWeb在他的安装目录下就有),按照提示,选择到你刚才申请的证书,next,最后一步要选择时间戳服务器,这里有个免费的: http://timestamp.verisign.com/scripts/timstamp.dll 写上去就完了,这样就完成了签名。
好了。现在一个带数字签名的CAB 文件 已经制作完成,在IE里不会出现不安全的控件,无法安装的现象了。
赶快自己去测试下吧。
小技巧:
Q:如何删除已经安装了的CAB内的控件。
A:1。找到主要的OCX或者DLL 文件 ,REGSVR32 xxx.ocx /u 卸载这个DLL
2。到C:/WINDOWS/Downloaded Program Files 下删除已经安装过的控件。就会出现再次安装了。
不同证书格式转换指南
从 双证书签名指南 和 单证书签名指南 可以看出:单证书的签名过程要比双证书的简单。所以,如果您想把双证书 文件 . pvk 和 .spc 转换成一个 .pfx 格式证书 文件 ,以简化签名过程和方便导入到 USB Key 中实现更加安全的签名管理,请参考本转换指南。而有些用户可能需要使用命令行方式来实现代码签名,即需要把 .pfx 格式签名证书 文件 转换成两个签名证书 文件 . pvk 和 .spc ,也请参考本转换指南。
从 双证书签名指南 和 单证书签名指南 可以看出:单证书的签名过程要比双证书的简单。所以,如果您想把双证书 文件 . pvk 和 .spc 转换成一个 .pfx 格式证书 文件 ,以简化签名过程和方便导入到 USB Key 中实现更加安全的签名管理,请参考本转换指南。而有些用户可能需要使用命令行方式来实现代码签名,即需要把 .pfx 格式签名证书 文件 转换成两个签名证书 文件 . pvk 和 .spc ,也请参考本转换指南。
一、从 .
pvk 和 .spc 格式转换成 .pfx 格式
(1) 下载微软的转换工具软件: pvkimprt.rar ,并成功安装;
(2) 请确认您电脑上已经安装了颁发代码签名证书的中级根证书,如果没有,请先点击安装:
WoTrust代码签名中级根证书为: WoTrust Code Signing Authority
(3) 在 DOS 状态下,进入保存两个签名证书 文件 mycert. pvk 和 mycert.spc 的目录,请键入命令:
WoTrust代码签名中级根证书为: WoTrust Code Signing Authority
(3) 在 DOS 状态下,进入保存两个签名证书 文件 mycert. pvk 和 mycert.spc 的目录,请键入命令:
pvkimprt mycert.spc mykey.
pvk
按提示输入私钥密码后,启动证书导入过程,按几个回车就成功把证书导入到 Windows 证书存储区,在 IE 浏览器的 “工具” — “ Internet 选项” — “内容” — “证书” — “个人”中就能看到您的签名证书,再点击“导出”就可以得到包含有签名证书公钥和私钥的 .pfx 格式证书。
请注意:在导出时要选中“如果可能,将所有证书包括到证书路径中”,并建议选中“如果导出成功删除密钥”以防止被他人非法导出。如果还需要导入使用,则再导入即可,此时导入的缺省是“不允许导出私钥”,从而保证了签名证书的安全。
请注意: pvkimprt 工具不支持跨操作系统,也就是说,如果您是在 Windows 2000 操作系统上生成的私钥
文件 .
pvk 的,则只能在 Windows 2000 操作系统中使用 pvkimprt 工具。
您也可以利用此工具来修改签名证书私钥
文件 .
pvk 的密码,只需要从 .pfx 格式证书
文件 中分离出私钥
文件 .
pvk 和公钥
文件 .spc ,请参考如下转换指南。
二、从 .pfx 格式转换成 .
pvk 和 .spc 格式
1. 需要使用 OpenSSL 来实现格式转换,如果没有OpenSSL ,则需要 下载 和安装一个 OpenSSL Win32 包;
2. 从 PFX 格式
文件 中提取私钥中间格式
文件 (.key) ,假设 OpenSSL 的安装目录为:
c:/program file/GnuWin32, PFX 格式
文件 目录: c:/cert/mycert.pfx ,在 DOS 状态下键入:
cd/Program Files/GnuWin32/bin
openssl pkcs12 -in mycert.pfx -nocerts -nodes -out mycert.key
会提示输入 .pfx 证书
文件 的密码,就是您从 IE 导出 PFX 备份
文件 时设置的密码,输入密码后会提示“ MAC verified OK ”,表示提取成功。
3. 使用
pvk .exe 来把 .key 格式
文件 转换成 .
pvk 格式, 下载
pvk .exe 到 c:/cert 目录,在 DOS 状态下键入:
pvk -in mycert.key -topvk -out mycert.
pvk
会提示输入密码,和再次输入密码就完成转换。
4. 从 IE 中导出或 下载 颁发代码签名证书的中级根证书WoTrust Code Signing Authority和导出您的代码签名证书的公钥 mycert.cer ,导出时选择 Base64 编码格式。
5. 使用签名工具包中的 cert2spc.exe 生成软件发行证书 .spc 格式
文件 , 下载 签名工具包,在 DOS 状态下键入:
cert2spc WoTrustCodeSigning.cer mycert.cer mycert.spc
会提示 Success ,表示 SPC
文件 生成成功。
这样就成功从 mycert.pfx 中得到了 mycert.
pvk 和 mycert.spc
文件 ,实现了从 .pfx 格式证书文到 .
pvk 和 .spc 格式证书
文件 的转换。