【Windows】数字签名
来源:互联网 发布:mac ntfs 移动硬盘 编辑:程序博客网 时间:2024/05/16 05:30
1 系统正常情况下的操作步骤
下面所有需要输入密码的,请输入同一个密码,所以你要记住自己创建的密码。
1.1 SignTool.rar 下载工具包或者
方法一、如果您安装Microsoft Visual Studio 2005,那么请在安装目录的(..\Common7\Tools\Bin\)下找到相关的工具(makecert.exe、cert2spc.exe、signcode.exe);
方法二、如果没有安装Microsoft Visual Studio 2005且没有数字签名工具包,请从此处下载。
http://download.csdn.net/detail/chenlu5201314/9700199
下载并解压工具包,工具包包括以下几个软件:
makecert.exe 制作cer格式的证书,即X.509证书,同时可以创建私钥cert2spc.exe 将cer格式证书转换成spc格式证书,即PKCS#7证书signcode.exe 将证书签署到ocx上去chktrust.exe 检查签署证书后的ocx是否正确;还有一个certmgr.exe,是管理证书用的。可以从这里面导出root.cer来,网上很多文章写到这个证书,但是在VC的安装盘中却找不到。其实,没有也没关系的。这几个软件可以从VC的安装盘中找到。
1.2 、makecert.exe 创建证书
为了便于操作,建议你将这个工具包放在磁盘根目录下,目录名称起得简单些,进入DOS模式下跳到该目录,输入以下命令,生成一个名为sagecert.cer的证书,如果需要重新创建证书,请将目标文件夹的*.PVK、*.cer、*.spc等文件删除
makecert /sv"SageKey.PVK" /n"CN=Sagecreation.com.cn,E=Sagecreation-163-com-cn,O=北京赛智创业有限公司" sagecert.cer
/sv
指定主题的.pvk 私钥文件。如果该文件不存在,系统将创建一个。
"SageKey.PVK"
自定义.pvk 私钥文件
/n
指定签名人信息信息。此名称必须符合 X.500 标准。最简单的方
法是在双引号中指定此名称,并加上前缀 CN=;例如, -n
"CN=myName"。
CN=Sagecreation.com.cn
签名人信息-名称
E=Sagecreation@163.com.cn
签名人信息-电子邮件
O=北京赛智创业有限公司
签名人信息-组织信息
sagecert.cer
自定义.cer证书文件
这些根据你自己的要求填写,最后得到SageKey.PVK和sagecert.cer两个文件。
其中各参数的含义,使用
makecert -?
makecert -!
可以获得详尽的帮助,在这里就不说了
在弹出的窗口输入密码保护你的证书,这个密码要在后面反复使用多次,所以要记住了
输入私人密钥的保护密码
1.2.1 创建私钥密码
1.2.2 输入私人密钥
输入完成后界面上会提示Succeeded,在当前的目录下也生成了*.cer和*.pvk两个文件。
1.3 、cert2spc.exe 格式转换(可以省略)
将cer格式转换为spc格式。
cert2spcsagecert.cer sagecert.spc
得到*.spc文件。
1.4 、signcode.exe 签名
给ocx、sys、exe、dll、cab等进行签名,下面我们对例子程序进行签名。
1.4.1 欢迎使用数字签名向导
双击工具包里的“signcode.exe”,signcode运行后会出现“数字签名向导”。
1.4.2 文件选择
首先选择你要签名的文件,例如下图所示的Exe文件,然后点击“下一步(N) >”。
1.4.3 签名选项
一种是“典型(T)”,一种是“自定义(C)”。我们选择“自定义(C)”,然后点击“下一步(N) >”。
1.4.4 签名证书
点击“从文件选择(F)...”,弹出“打开”文件对话框。
选择cer文件或者spc文件。点击“打开(O)”,然后点击“下一步(N)>”。
1.4.5 私钥
点击“浏览(R)...”,弹出“打开”对话框。
选择私钥文件*.PVK,点击“打开(O)”。
选择“CSP”,选择完成后,点击“下一步(N) >”。
输入私钥的“密码(P)”,输入完成后点击“确定”。
1.4.6 散列算法(哈希算法)
选择“散列算法”(“哈希算法(H)”),一般用“md5”就可以了,点击“下一步(N) >”。
1.4.7 其它证书
保持默认,点击“下一步(N) >”。
1.4.8 数据描述(可选)
填写“描述(可选)(D)”和“Web位置(可选)(W)”,点击“下一步(N) >”。
1.4.9 给数据盖时间戳(可选)
“将时间戳添加到数据中(D)”可以勾选也可以不勾选。
如果没有勾选了“将时间戳添加到数据中(D)”,点击“下一步(N) >”;如果勾选了“将时间戳添加到数据中(D)”,请填写“时间戳服务(T)”,可以是下列URL中的一个,然后点击“下一步(N) >”。
http://timestamp.wosign.com/timestamp
http://timestamp.verisign.com/scripts/timstamp.dll
http://timestamp.globalsign.com/scripts/timstamp.dll
http://timestamp.comodoca.com/authenticode
1.4.10 正在完成数字签名向导
查看“已指定下列设置”的内容,确认后点击“完成”。
输入私钥密码,点击“确定”,弹出“数字签名向导已经成功完成。”的提示,表示已经签名完成。
1.5 、chktrust.exe 检查
检测数字签名是否正确,在DOS窗口输入下列命令中的一种:
chktrust.exeC:\SignTool\ChemiCapture(Release).exe
chktrust –v C:\SignTool\ChemiCapture(Release).exe
如果下图所示,DOS窗口显示“C:\SignTool\ChemiCapture(Release).exe:Succeeded”表示签名成功。
2 遇到问题及解决方案
2.1 数字签名向导-签名证书和私钥不匹配,或者不数据包含有效信息。
解决方案:选择合适CSP
2.2 数字签名向导-您必须指定加密服务提供程序
2.2.1 解决方案
2.2.1.1 第一步:检测下列windows相关服务属性是否为(启动类型 = 自动;服务状态 = 已启动)
Protected Storage服务
Cryptographic Service服务
Encrypting File System (EFS)服务
2.2.1.2 第二步:在注册表中搜索下列相关内容,如果没请重装系统或者使用其他计算机进行签名
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider
Provider
CSP(C)
Image Path
Types
Microsoft Base Cryptographic Provider v1.0
rsaenh.dll
1
Microsoft Base DSS and Diffie-Hellman Cryptographic Provider
dssenh.dll
13
Microsoft Base DSS Cryptographic Provider
dssenh.dll
3
Microsoft Base Smart Card Crypto Provider
basecsp.dll
1
Microsoft DH SChannel Cryptographic Provider
dssenh.dll
18
Microsoft Enhanced Cryptographic Provider v1.0
rsaenh.dll
1
Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider
dssenh.dll
13
Microsoft Enhanced RSA and AES Cryptographic Provider
rsaenh.dll
24
Microsoft RSA SChannel Cryptographic Provider
rsaenh.dll
14
Microsoft Strong Cryptographic Provider
rsaenh.dll
1
Provider Type
Types
Name
TypeName提供程序类型(V)
1
Microsoft Strong Cryptographic Provider
RSA Full (Signature and Key Exchange)
3
Microsoft Base DSS Cryptographic Provider
DSS Signature
12
Microsoft RSA SChannel Cryptographic Provider
RSA SChannel
13
Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider
DSS Signature with Diffie-Hellman Key Exchange
18
Microsoft DH SChannel Cryptographic Provider
Diffie-Hellman SChannel
24
Microsoft Enhanced RSA and AES Cryptographic Provider
RSA Full and AES
2.3 数字签名向导-Windows无法构建申请的证书路径。
解决方案:在makecert 的DOS命令中加入“-$ "individual" -r”,重新生成私钥(PVK)和证书(CER)文件。签名时选用“md5”算法。
例如:
Xp下
makecert /sv"SageKey.PVK" /n"CN=Sagecreation.com.cn,E=Sagecreation-163-com-cn,O=北京赛智创业有限公司" sagecert.cer
Win7下
makecert /sv"SageKey.PVK" /n"CN=Sagecreation.com.cn,E=Sagecreation-163-com-cn,O=北京赛智创业有限公司" sagecert.cer -$ "individual" -r
- Windows数字签名
- Windows数字签名
- Windows 数字签名
- 【Windows】数字签名
- windows驱动数字签名
- Windows数字签名 数字签名(代码签名)流程
- Windows Mobile 数字签名(一)
- 了解Windows系统驱动程序--数字签名
- 数字签名
- 数字签名
- 数字签名
- 数字签名
- 数字签名
- 数字签名
- 数字签名
- 数字签名
- 数字签名
- 数字签名
- 处子篇
- 算法-最小栈的实现-minStack
- Kindle connect PI by USBNetWork(To be completed)
- Android webview在https下实现ssl的双向认证
- 部署到Linux报错 Unsupported major.minor version 52.0
- 【Windows】数字签名
- HTML5混合开发工程师行业前景分析
- 数据结构与算法 :提到的几种排序
- python webdriver调用JS操作日期控件
- IE11不支持Selenium 2.0 的解决办法
- iOS10相关权限的设置
- 浅入浅出 Android 安全:第五章 Android 应用层安全
- 1065. A+B and C (64bit) (20)
- 使用 ndk-stack 寻找Android程序Crash的原因