【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

 

0 0
原创粉丝点击