posts - 0,comments - 1,trackbacks - 0

制作签名的工具软件:(这个装了VS的话。全部工具都有了)

1、makecert.exe 制作cer格式的证书,即X.509证书,同时可以创建私钥
2、cert2spc.exe 将cer格式证书转换成spc格式证书,即PKCS #7证书
3、signcode.exe 将证书签署到ocx上去
4、chktrust.exe 检查签署证书后的ocx是否正确


还有一个certmgr.exe,是管理证书用的。可以从这里面导出root.cer来。(这个倒还没有用,没有多大的影响。)

签名软件可以对dll、ocx以及VB的打包向导的.cab 文件进行签名

1、创建一个自己的证书文件:
(1)
makecert /sv "Record.PVK" /n "CN=ZqbaSoft" test.cer

这 里,Record.PVK表示新创建的私人密钥保存文件名,ZqbaSoft是你想显示的公司名,test.cer是你创建最后的证书文件名。最后得到 Record.PVK和test.cer两个文件。其中,运行过程中需要输入私人密钥的保护密码,一定要输入一致,不要出错。

(2)
a)建立自己的根证书:
makecert -sk "Record.PVK" -ss myName    -n "CN=Zqba.com,E=zqba@zqba.com,O=XDK" test.cer
sk-表示主题的密钥容器位置,ss-主题的证书存储名称, n-证书颁发对象,r-证书存储位置;
如果你需要导出私钥文件,请不要使用sk,而换作sv,例:makecert -ss myName -n "CN=Zqba.com" -sv c:\Record.PVK -r c:\test.cer

b)建立自根证书授权的子证书:
makecert -sk "myPK" -is myName -n "CN=公Zqba.com" -$ commercial -ic c:\test.cer c:\xdk.cer
sk-表示主题的密钥容器位置,is-颁发者的证书存储名称, n-证书颁发对象,ic-颁发者的证书存储位置,-$-授权范围(用于代码签名);


2、使用Cert2Spc生成spc发行者证书(转换cer格式为spc格式,可以省略):
cert2spc c:\xdk.cer c:\xdk.spc

3、给ocx或cab包进行签名
运行signcode,命令行的我没有试验通过,我是通过界面实现的。signcode运行后会出现数字签 名向导,首先选择你要签名的ocx,下一步后会出现签名选项,一种是典型,一种是自定义。选择自定义,这样才能从文件选择证书,选择前面制作的 xdk.spc,再下一步是选择私钥文件,选择Record.PVK,输入私人密钥的保护密码,选择散列算法,一般用md5就可以了,下一步是选择其他证 书,直接下一步,填写一下这个控件的声明,用户用ie浏览的时候,会弹出证书说明,再下一步是加盖时间戳,直接下一步就完成了。

4、用chktrust检查是否正确
chktrust -v test.cab

把这个CAB文件放到你的服务器上,用下列代码说明你的codebase,就会自动下载了。
<object classid="clsid:7E0CDEE7-DC80-4F37-9410-790BB5E9270E" codebase="http://zqba.com/test.cab#version=1,0,0,1" width="800" height="191">

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

在一下午的测试中发现,在xp SP2系统下,弹出安装,就算是点确定都是不可以下载,XP还会自动屏蔽的。在win2K,VB6,vs.net2002下调试通过。

总结一下,在命令行下,也就是四个步骤:

1、makecert /sv "Record.PVK" /n "CN=ZqbaSoft" test.cer

2、makecert -sk "Record.PVK" -ss myName    -n "CN=公司名称,E=email,O=作者" test.cer

3、makecert -sk "myPK" -is myName -n "CN=公司名称" -$ commercial -ic c:\test.cer c:\31.cer

4、cert2spc c:\31.cer c:\31.spc

运行signcode,按向导生成就行了。

备:^_^

makecert,MS如是说:http://msdn2.microsoft.com/zh-cn/library/bfsktky3.aspx

cert2spc ,MS如是说:http://msdn2.microsoft.com/zh-cn/library/f657tk8f.aspx

signcode,MS如是说:http://msdn2.microsoft.com/zh-cn/library/9sh96ycy.aspx

posted on 2007-02-16 18:03 Perry 阅读(947) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: