在基于 Linux 的发行版上签署 Windows 应用程序
问题:在基于 Linux 的发行版上签署 Windows 应用程序 我准备了一个应用程序和网站,客户可以在其中为该应用程序设置几个选项,然后再下载它。设置以二进制格式存储在文件末尾(附加),然后将编辑后的文件发送给最终用户。问题是文件“内容”的更改会破坏文件签名 - 是否有机会使用任何命令行工具重新签署这个更改的文件?我尝试使用 Microsoft 的 SignTool,但它在 Linux 上无法
·
问题:在基于 Linux 的发行版上签署 Windows 应用程序
我准备了一个应用程序和网站,客户可以在其中为该应用程序设置几个选项,然后再下载它。设置以二进制格式存储在文件末尾(附加),然后将编辑后的文件发送给最终用户。问题是文件“内容”的更改会破坏文件签名 - 是否有机会使用任何命令行工具重新签署这个更改的文件?我尝试使用 Microsoft 的 SignTool,但它在 Linux 上无法正常工作。
解答
使用Mono
的 signtool 来做其实很简单;棘手的部分(在链接的 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.digicert.com/scripts/timstamp.dll \
-tr 10 \
MyApp.exe
更多推荐
已为社区贡献12897条内容
所有评论(0)