windows下如何制作和应用数字签名证书 全流程
需要准备的工具:makecert.exe、cert2spc.exe、pvk2pfx.exe、signtool.exe。下载
1、生成一个自签名的根证书(issuer,签发者)。
makecert.exe -sv c:\mykey.pvk -n "CN=Comapy Name" c:\myCert.cer
会弹出提示框,首先给RootIssuer.pvk文件设置私钥保护口令password ;
2、再次输入这个口令用私钥(在RootIssuer.pvk文件中)来给公钥(在RootIssuer.cer文件中)加密。
cert2spc.exe c:\mycert.cer c:\mycert.spc
3、 将公钥证书和私钥合并成一个PFX格式的证书文件
pvk2pfx.exe -pvk mykey.pvk -pi password -spc mykey.spc -pfx mykey.pfx -po password
4、签名(双签名)
SignTool sign /v /fd sha1 /f "mykey.pfx" /p "password" /t http://timestamp.digicert.com "myfile.exe"
SignTool sign /v /as /fd sha256 /f "mykey.pfx" /p "password" /tr http://timestamp.digicert.com "myfile.exe"
5、批处理
将文件夹下所有的文件进行签名
set DIR="%C:\Users\Lenovo\Desktop\signtest\file%"
echo DIR=%DIR%
for /R %DIR% %%f in (*.*) do (
SignTool sign /v /fd sha1 /f "mykey.pfx" /p "password" /t http://timestamp.digicert.com %%f
SignTool sign /v /as /fd sha256 /f "mykey.pfx" /p "password" /tr http://timestamp.digicert.com %%f
)
pause
参考:
echo off & color 0A
::指定起始文件夹
set DIR="%cd%"
echo DIR=%DIR
:: 参数 /R 表示需要遍历子文件夹,去掉表示不遍历子文件夹
:: %%f 是一个变量,类似于迭代器,但是这个变量只能由一个字母组成,前面带上%%
:: 括号中是通配符,可以指定后缀名,*.*表示所有文件
for /R %DIR% %%f in (*.txt) do (
echo %%f
)
pause
补充:
【对自己的软件加盖时间戳】
可以使用WoSign提供的时间戳服务:http://timestamp.wosign.com/timestamp
SignTool timestamp /t http://timestamp.verisign.com/scripts/timstamp.dll abc.exe