使用SignTool.exe对文件进行数字签名

Posted dgjnszf

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用SignTool.exe对文件进行数字签名相关的知识,希望对你有一定的参考价值。

SignTool.exe是微软官方发布的一个命令行工具,用于对文件进行数字签名,以及验证文件和时间戳文件中的签名,微软官方介绍文档:https://docs.microsoft.com/zh-cn/dotnet/framework/tools/signtool-exe

此工具会自动随 Visual Studio 一起安装,如果你的电脑已经安装了Visual Studio,那么你可能在以下目录找到它:

C:Program Files (x86)Microsoft SDKsWindowsv7.1ABinsigntool.exe
C:Program FilesMicrosoft SDKsWindowsv7.1ABinsigntool.exe

该工具只能在DOS命令行运行,没有图形界面。

使用SignTool.exe对文件进行数字签名时需要使用*.pfx格式的证书

 

1.对exe程序数字签名

# /p <passwd>  表示pfx证书的打开密码
signtool sign /f MyCert.pfx /p MyPassword MyFile.exe

2.对dll文件数字签名

signtool sign /f MyCert.pfx /p MyPassword MyFile.dll

3.数字签名并加盖时间戳

signtool sign /f MyCert.pfx /t http://timestamp.digicert.com MyFile.exe

4.对已签名的exe程序加盖时间戳,如果exe程序没有签名则不能加盖时间戳。

signtool timestamp /t http://timestamp.digicert.com MyFile.exe

5.将*.crt格式证书转换成*.pfx格式

# 格式转换需要两个文件:私钥(xxxx.key)和证书(xxxx.crt)
# 转换证书格式时OpenSSL会要求你设置pfx证书的打开密码,你可以直接按回车键不设置密码。
openssl pkcs12 -export –in xxxx.crt -inkey xxxx.key -out xxxx.pfx

...

以上是关于使用SignTool.exe对文件进行数字签名的主要内容,如果未能解决你的问题,请参考以下文章

使用 signtool.exe 自动进行代码签名,但不存储证书或密码

signtool 无法使用时间戳对 SHA2 和 SHA1 进行双重签名

微软代码签名证书使用指南(SignTool)

使用 signtool.exe 签署多个文件

Windows 代码签名过程和 MS signtool.exe 的替代方案? [关闭]

Signtool.exe /dg /ds /di 选项和时间戳