ActiveX控件打包发布,解决无证书的问题

ActiveX发布步骤

创建PVK文件[私人密匙文件]

makecert   -sk   DigitalTitan   DigitalTitan.pvk
makecert   -n   CN=TelStar   TelStar

创建CER文件[公司证书]

makecert   -sk   DigitalTitan.pvk   TelStar.cer

创建SPC测试软件出版商证明书

cert2spc   root.cer   TelStar.cer   TelStar.spc

创建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
;

创建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


另:
makeCert   -sk   DigitalTitanKey   -n   "CN=TelStar "   -ss   TelStar   TelStar.cer
makecert   -is   TelStar   -ic   TelStar.cer   -ss   TelStarCompany.cer

Cert2SPC   MyCert.cer   MyCert.spc

 

打包工具包:
申请证书:Win2000:控制面板-管理工具-证书颁发机构[没有则更新组件]Http://127.0.0.1/CertSrv/
签名工具包:http://download.microsoft.com/download/b/e/f/bef2551b-401d-4311-ab8f-13d3892b8154/codesigningx86.exe
时间戳服务:verisign的时间服务器,这个是免费的.
http://timestamp.verisign.com/scripts/timstamp.dll
-----------------------------------------------------------------------------------------------------------
关于数字签名的问题:

问题现象:在自己编写的DLL之类的东西在WEB上使用的时候会提示ACTIVEX控件不安全或者每次使用时提示安装不安全的ACTIVEX

解决方法:这个方法是俺花了2天时间研究出来的,肯定有不正确的地方,希望各位指正。
                  使用数字签名可以解决该问题

1、在你的机器上数字签名所需要的工具,叫什么名字不记得了,只晓得是个ZIP文件,叫codesigningx86,是WINDOWS下面使用的,正常解开后会有以下文件:
==============
cabarc.exe
cert2spc.exe
chktrust.exe
makecat.exe
makecert.exe   (必须)
makectl.exe
setreg.exe
signcode.exe   (必须)
================
        以上的可以的微软的站点下载
        以上根据需要来确定采用哪些工具,这里我采用了makecert.exe   来制作认证的证书,signcode.来进行数字签名

这时会在你的目录下生成个oranje.pvk和oranje.cer文件,打开.cer文件可以看到是证书信息
          颁发给:王成
          颁发者:Rooe   Agenct
          有效起始日期   2003-11-29   到   2040-1-1

好了,有了这个证书可以进一步搞你的DLL或CAB等的认证了


2、进入DOS状态,进入改目录

输入:makecert   -sv   oranje.pvk   -n   "CN=王成,[email protected],O=王成 "   oranje.cer
这个是制作证书   -sv是制作加密的文件(好象是的),CN是公司   E=EMail   O=认证公司的名称   oranje.cer是生成文件的名称,好象都是以.cer为后缀的

这时制作的证书是没有任何认证公司认证的,听说认证一年需要好几百美金,俺没钱,所以只好自己做个使用了,功能都一样

3、运行Signcode.exe

出现一个数字签名向导
        下一步   选择需要签名的文件(dll.ocx.cab等)
        下一步   这里选择了自定义
        下一步   选择签名证书   从文件选择   选择刚才做好的oranje.cer  
        下一步   私钥   磁盘上的私钥文件   点浏览选择刚才做好的oranje.pvk  
        下一步   输入密码  
        下一步   选择算法,这里我选择的是sha1  
        下一步   配置证书路径   这里我选择了“证书路径中所有证书,包括根证书”就是默认的
        下一步   描述:输入安装证书时提示的文字,随便输入,这里我输入“公文编辑器”   WEB位置是点了你输入的东西的链接,我这里输入http://www.cn2cn.com   —>   下一步   时间   没做改动  
        下一步   完成

4、恭喜你,证书制作完毕,马上配置你的CAB或DLL等试试看,第一次运行会出现安装你的证书,以后再运行就不需要了,也不会出现“不安全的ACTIVEX,不让安装”等提示了

5、调试及运行环境
      windows   2000   P
      IIS   5 
-----------------------------------------------------------------------------------------------------------------------------------------------
MSDN中搜索

Q197988
HOWTO:   Deploy   an   ActiveX   Control   Written   in   Visual   Basic

另MSDN(英文July   2000)中   URL.
mk:@MSITStore:E:/Program%20Files/Microsoft%20Visual%20Studio/MSDN/2000JUL/1033/vbcon98.chm::/Html/vbcondownloadingactivexcomponents.htm

到这个连接,   看完五篇文章,所有有关ActiveX部署,签名,安全的问题统统解决。不懂再问
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon98/html/vbconDownloadingActiveXComponents.asp

Downloading   ActiveX   Components
---Steps   to   Prepare   Your   Component   for   Download
---Internet   Component   Download  
---Testing   your   Internet   Component   Download  
---Advanced   Customization   for   Internet   Component   Download  
---Manually   Deploying   ActiveX   Components 

你可能感兴趣的:(mfc,工具,download,internet,Components,wizard)