ActiveX发布步骤整理

原帖:http://blog.csdn.net/wangweixing2000/archive/2007/11/19/1893602.aspx

 

1、数字签名。使用SignCode.exe进行数字签名,步骤如下:
首先要有工具包,包括以下几个软件:(c:/Program Files/Microsoft Visual Studio .NET 2003/Common7/Tools/Bin目录下都有)
makecert.exe 制作cer格式的证书,即X.509证书,同时可以创建私钥
cert2spc.exe 将cer格式证书转换成spc格式证书,即PKCS #7证书
signcode.exe 将证书签署到ocx上去
chktrust.exe 检查签署证书后的ocx是否正确
还有一个certmgr.exe,是管理证书用的。可以从这里面导出root.cer来,网上很多文章写到这个证书,但是在VC的安装盘中却找不

到。其实,没有也没关系的。这几个软件可以从VC的安装盘中找到。

下面是具体的步骤:
1、创建一个自己的证书文件:
makecert /sv "wwx.PVK" /n "CN=yourcompant" wwx.cer
makecert /sv "wwx.pvk" /n "CN=公司名称,E=email,O=作者" wwx.cer
这里,Record.PVK表示新创建的私人密钥保存文件名
yourcompant是你想显示的公司名
wwx.cer是你创建最后的证书文件名
这些根据你自己的要求填写,最后得到wwx.PVK和wwx.cer两个文件。
其中,运行过程中需要输入私人密钥的保护密码,一定要输入一致,不要出错。

2、转换cer格式为spc格式(可以省略)
cert2spc wwx.cer wwx.spc
得到wwx.spc文件。

3、给ocx进行签名
运行signcode,命令行的我没有试验通过,我是通过界面实现的。
signcode运行后会出现数字签名向导,首先选择你要签名的ocx,下一步后会出现签名选项,一种是典型,一种是自定义。选择自定

义,这样才能从文件选择证书,选择前面制作的dream.spc,再下一步是
选择私钥文件,选择Record.PVK,输入私人密钥的保护密码,选择散列算法,一般用md5就可以了,下一步是选择其他证书,直接下

一步,填写一下这个控件的声明,用户用ie浏览的时候,会弹出证书说明,再下一步是加盖时间戳,如果需要,用以下地址:

http://timestamp.verisign.com/scripts/timstamp.dll 要求已经上网并能出国,然后直接下一步就完成了。

4、用chktrust检查是否正确
chktrust -v RecordProj.ocx

就这样,得到了一个测试证书,恩,虽然只是一个测试证书,但至少保证这个ocx在ie浏览的时候能够弹出来一个窗口,问你是否安装,而不是直接禁止了。

5、创建INF文件

[version]
signature="$CHINA$"
AdvancedINF=2.0

[Add.Code]
WebOffice.ocx=WebOffice.ocx
mfc70.dll=mfc70.dll
msvcrt.dll=msvcrt.dll
olepro32.dll=olepro32.dll

[mfc70.dll]
file-win32-x86=thiscab
FileVersion=7,0,9466,0
DestDir=11
RegisterServer=yes

[msvcrt.dll]
file-win32-x86=thiscab
FileVersion=6,1,9844,0
DestDir=11
RegisterServer=yes

[olepro32.dll]
file-win32-x86=thiscab
FileVersion=5,0,4522,0
DestDir=11
RegisterServer=yes

[WebOffice.ocx]
file-win32-x86=thiscab
clsid={05430EC0-69CA-437A-B1F9-4B78B8647BEA}
FileVersion=1,0,0,1
RegisterServer=yes
;

注意:如果基于MFC选择了静态编译就不需要配置动态运行库.

6、创建CAB文件
cabarc -s 6144 n WebOffice.cab msvcrt.dll msvcp70.dll msvcr70.dll mfc70.dll olepro32.dll ASYCFILT.DLL STDOLE2.TLB  WebOffice.ocx WebOffice.inf

使用Code Signing Wizard签署一个CAB文件
SIGNCODE.exe
时间戳服务:verisign的时间服务器,这个是免费的.http://timestamp.verisign.com/scripts/timstamp.dll

7、
完成后编辑网页ActiveX.htm

<object id=DWebOffice style="left: 0px; width: 100%; top: 0px; height: 450px;" classid="clsid:05430EC0-69CA-437A-B1F9-4B78B8647BEA" viewastext codebase="http://127.0.0.1:9000/ActiveX/WebOffice.cab#version=1,0,0,1">


注意网页中object标签codebase参数的URL地址和#version所指定的版本号

你可能感兴趣的:(ActiveX发布步骤整理)