通过以下方法实现数据签名:
1)创建证书和私钥文件
C:/Documents and Settings/smx
/SignTool>makecert /sv "Image.PVK" /n "CN=Facesun.cn,E=Hiso,O=sunmx" imgtest.cer
Succeeded
2)创建测试用证书
C:/Documents and Settings/smx/SignTool>cert2spc imgtest.cer image.spc
Succeeded
3)数字签名
C:/Documents and Settings/smx/SignTool>signcode
4)验证
C:/Documents and Settings/smx/SignTool>chktrust.exe C:/wwwroot/TestApp/CAB/Inage.cab
问题:
1、上述方法可以实现数字签名(测试用证书)但是到最后一步时总是不能正确通过,提示是说证书的提供机构无效。有谁做过相关的帮看一下。
2、因为该证书只是用于局域网内,所以客户不想出钱注册,想问一下通过这种测试证书可不可以?
3、如果能行,如果有多台服务器负载,这种证书怎么部署。
问题多了点,请大家不吝赐教。
///
参考
http://www.cnblogs.com/babyt/archive/2005/03/14/118264.html
http://www.cnblogs.com/babyt/archive/2005/03/14/118302.html
http://www.cnblogs.com/babyt/archive/2005/03/14/118309.html
//
@ neilxp(紫金港忙人) :
在单位内部的局域网内根本没有必要。
当前国内的网络安全没有一个权威的,统一的数字证书发放机构,大概他们不知道这里面蕴含着多大的商机吧。现在是每个个省都有自己的数字证书发放机构,甚至一些政府机构都有,如税务局,这就导致了根本没有一个国内的证书颁发机构列在证书信任列表中。就是搞到了也必须得每台电脑上装信任证书。
如果使用VeriSign或者Thawte这样的国外权威商业证书颁发机构(如Flash Player CAB, 国内的一些3721等)都是用的这些权威证书,就不需要每台计算机都装信任证书了,但是这是要钱的。
最权威的数字证书的发行商的代码保护证书的价格表去看看,这只是一年的价格,就是说每年都要花这么多钱。
而用局域网的电脑专门安装一个数字证书服务器,就可以自行规定各种各样的证书了。要做的仅仅是把这个安装数字证书服务器时自动生成的代表这个服务器的公钥证书安装在局域网中每台电脑中“信任根证书颁发机构”中即可。这样,这个数字证书服务器颁发的所有证书都被信任了。工作虽然麻烦了一点,不过只要做一次即可,除非重装系统。
然后使用这个数字证书服务器生成一个时效自定的代码保护证书,如果你愿意,可以让这个证书有效50年。只要生成一个证书,用证书工具绑定一次就可以了。
最重要的是,这个证书不花一分钱。
/
这个东西我做过,不过是做我们单位的虚拟专用网。
你在第二步的时候出错:
2)创建测试用证书
C:/Documents and Settings/smx/SignTool>cert2spc imgtest.cer image.spc
在实际应用中,你不应该,也不能够使用测试证书,因为这个证书只能在你的计算机上使用,其他人不能用的。
为什么不能用?很简单,你这个测试证书根本不受客户端的信任。要看客户端信任哪些证书,可以打开IE,单击 工具 --> Internet选项 --> 内容 --> 证书 --> 受信任的根证书颁发机构
这时,对话框中显示出一些机构的列表,只有这些饱含在列表中的公司颁发的证书才能被信任,即可以使用,你使用再多的技术也不行。
所以要解决你的问题有两条路,你要的证书名为“代码保护证书”。
第一条路:到VeriSign或者Thawte这样的全球权威的证书颁发机构去申请代码保护证书,一个证书一年大概几千元钱。这个方法有好处,客户端不需要任何手工修改操作就可以直接使用。
第二条路,你说你这个CAB使用在局域网,这就好办了。
你在客户的局域网的服务器中(实际上并不需要服务器,只要任何一台电脑,安装2000Server/2003即可),在添加删除程序的Windows组件中添加“证书服务器”,当安装证书服务器组件后,这台电脑就变成一个证书颁发机构了,就会自动生成一个表示这个办法机构的数字证书公钥文件。
然后,必须在整个局域网的每台电脑上把这个公钥文件全部手工安装到“受信任的根证书颁发机构”中去。
这时,你就可以操作“证书服务器”产生一个代码保护证书,然后用上面的方法保护代码,就可以了。
/
问题:
1、上述方法可以实现数字签名(测试用证书)但是到最后一步时总是不能正确通过,提示是说证书的提供机构无效。有谁做过相关的帮看一下。
答:提示是说证书的提供机构无效是没有安装根证书,所谓根证书就是CA认证中心给自己颁发的证书(这种证书只有公钥),是信任链的起始点。安装根证书意味着对这个CA认证中心的信任。
2、因为该证书只是用于局域网内,所以客户不想出钱注册,想问一下通过这种测试证书可不可以?
不需要出钱注册,只需要一个试用证书即可搞测试用,可以到www.cnac.net申请。
3、如果能行,如果有多台服务器负载,这种证书怎么部署。
证书安装一般会驻留在相应的证书存储区里。