当前位置: 首页 > 面试题库 >

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

韩嘉胜
2023-03-14
问题内容

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


问题答案:

使用的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


 类似资料:
  • 是否有工具和行业标准来确保和验证补丁或系统更新的完整性。作为发布过程的一部分,有时我会向基于ColdFusion/HTML/JS的应用程序交付更新集。我的问题是,我是否真的可以对软件包或单个更新进行即时签名,然后在安装之前让ColdFusion/application server自动验证它们。 请注意,有时我需要向单个JS文件提供更新,有时需要向一组ColdFusion、cfc/cfm文件提供更

  • 本文向大家介绍GNU/Linux 检测您正在使用的基于Debian的发行版,包括了GNU/Linux 检测您正在使用的基于Debian的发行版的使用技巧和注意事项,需要的朋友参考一下 示例 只需执行lsb_release -a。 在Debian上: 在Ubuntu上: 如果未lsb_release安装,则可能需要尝试一些猜测,例如,有一个文件/etc/issue通常包含发行版名称。例如,在ubun

  • 我意识到这个问题(Windows容器可以托管在Linux上吗?),但它并没有真正回答我的问题。 我是Docker的新手,但我的问题是这样的--如果我把任何windows应用程序放在Docker容器中,它现在能在Linux上运行吗?反之亦然? Confluent声称它只能在linux上运行,但我的同事使用Docker在Windows上安装了它。所以如果你能用Docker安装它,那么整个应用程序肯定会

  • 本文向大家介绍GNU/Linux 检测您正在使用哪种基于systemd的发行版,包括了GNU/Linux 检测您正在使用哪种基于systemd的发行版的使用技巧和注意事项,需要的朋友参考一下 示例 此方法适用于Arch,CentOS,CoreOS,Debian,Fedora,Mageia,openSUSE,Red Hat Enterprise Linux,SUSE Linux Enterprise

  • 问题内容: 我必须从Python脚本获取Linux发行版名称。平台模块中有一个方法: 但是在我的Arch Linux下,它返回: 为什么?我如何获得名字? PS。我必须检查发行版是否基于Debian。 更新:我在这里找到Python网站,从2.6开始不推荐使用dist()。 问题答案: 这对我在Ubuntu上有效: 然后,我通常会找出平台模块到底是做什么来找到发行版的,这就是这一部分: 因此,其中

  • 问题内容: 我正在使用Eclipse SWT库进行GUI渲染,用Java为桌面编写一个应用程序。我认为SWT帮助Java克服了在桌面上接受的最大障碍:即为Java应用程序提供一致的,响应式的界面,该界面看起来与桌面上其他任何应用程序的界面都一样。但是,我觉得打包应用程序仍然是一个问题。 OS X本机提供了一种将Java应用程序包装在本机应用程序包中的简便机制,但是为Windows / Linux生