客户端代码签名流程
参考:
https://bbs.huaweicloud.com/blogs/380651
过程如下:
1.申请证书,我们是申请了setigo证书
2.完成SafeNet安装设置
3.安装windows kit //可以独立安装,也可以通过vs控制面板那边修改 我的路径是C:\Program Files (x86)\Windows Kits\10\bin\10.0.20348.0\x64\signtool.exe 大体路径就在这附近
4.将令牌插入计算,打开SafeNet客户端
5.打开cmd,在signtool.exe路径下输入
signtool sign /tr http://timestamp.comodoca.com /td sha256 /fd sha256 /a /v “D:\XXXX.exe“
6.输入命令后,SafeNet会要求输入密码,输入密码后,应用程序就签名了
7.如何验证成功,打开应用程序所在的文件夹,右键单击该应用程序,然后单击“ 属性”。单击“ 数字签名”菜单,就可以看到,如果看不到, 那就是出问题了, 要重新试试
在上面的命令中
signtool.exe - 这是用于签署您的 EXE 或 DLL 或 CAB 或 OCX 文件的 Signtool 实用程序 sign – 这是 signtool 的子命令,表示我们将执行代码签名过程 /a - 这里的"a"代表自动。此选项将自动选择最佳签名证书。当您可能有多个签名证书时使用此选项。如果您只有一个签名证书,则无需提供此选项。 /t - 这里的"t"代表时间戳服务器。在 /t 之后,您应该指定时间戳服务器 URL。这个很重要。如果您不指定此选项,当您的文件被签名时,它不会被时间戳。您可以使用任何时间戳服务器 URL。我使用了来自威瑞信的 URL。 /v - 这里的“v”代表详细。这将显示 signtool 执行的详细输出。这还将显示适当的成功、错误和警告消息。 "c:\thegeekstuff.exe" ——这应该是最后一个参数,它是完整路径和您要进行代码签名的文件的名称。 /tr – 这里的"tr"代表时间戳服务器 RFC 3161。为此,您必须确保时间戳服务器支持 RFC 3161。如果不是,这将返回如下所示的错误消息。我使用了 geotrust.com URL。您还可以使用此 RFC 3161 URL:http://timestamp.digicert.com /td – 这里的"td"代表时间服务器摘要算法。这用于从指定的 RFC 3161 时间服务器请求指定的摘要算法(在本例中为 sha256)。确保 /td 开关在 /tr 开关之后声明。如果您在 /tr 开关之前指定此选项,则时间戳将从 SHA1 算法和您希望的 SHA256 返回。 /fd - 这里的"fd"代表文件摘要算法。默认情况下,当您不指定此参数时,它将使用 SHA-1 算法。在此示例中,它将使用 SHA256 算法对文件进行数字签名。
后来改成自动化的
把需要的exe都加到指定的位置即可
看QQ和一些应用不知道为什么都是签名两个 搜了一下文档 https://www.jianshu.com/p/45a1c4d69147