小编典典

在基于Linux的发行版上签名Windows应用程序

linux

我已经准备了一个应用程序和网站,客户可以在该应用程序上为其设置几个选项,然后再下载。设置以二进制格式存储在文件的末尾(附加),然后将已编辑的文件发送给最终用户。问题是文件的“内容”的更改将破坏文件签名-
是否有任何机会使用任何命令行工具重新签名此更改的文件?我尝试使用Microsoft的SignTool,但在Linux上无法正常工作。


阅读 390

收藏
2020-06-02

共1个答案

小编典典

使用的signtool 实际上很简单Mono;棘手的部分(在链接的Mozilla文章中有更详细的描述)是将正确格式的证书从Windows复制到Linux。

将Windows PFX证书文件转换为PVK和SPC文件时,将证书从Windows复制到Linux时只需要执行一次。

openssl pkcs12 -in authenticode.pfx -nocerts -nodes -out key.pem
openssl rsa -in key.pem -outform PVK -pvk-strong -out authenticode.pvk
openssl pkcs12 -in authenticode.pfx -nokeys -nodes -out cert.pem
openssl crl2pkcs7 -nocrl -certfile cert.pem -outform DER -out authenticode.spc

实际上,对exe进行签名很简单。

signcode \
 -spc authenticode.spc \
 -v authenticode.pvk \
 -a sha1 -$ commercial \
 -n My\ Application \
 -i http://www.example.com/ \
 -t http://timestamp.verisign.com/scripts/timstamp.dll \
 -tr 10 \
 MyApp.exe
2020-06-02