客户端代码签名流程

参考:

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

 

 

 
posted @ 2022-12-05 11:40  冰糖葫芦很乖  阅读(380)  评论(0编辑  收藏  举报