首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Windows代码签名过程& MS signtool.exe的替代方案?

Windows代码签名过程& MS signtool.exe的替代方案?
EN

Stack Overflow用户
提问于 2013-08-13 14:17:15
回答 4查看 8.9K关注 0票数 5

使用一个非Microsoft编译器,我为Windows编写了一些小应用程序,我想免费赠送或以微不足道的价格出售(比如5美元)。该程序不使用注册表,但我希望将其作为使用免费工具(例如,MyAppInstall.exe)创建的安装程序可执行文件(例如InnoSetup)提供。

对Windows文件进行签名和其他来源,我的理解如下:

  1. 如果我不对安装程序签名,Windows将弹出一个警告对话框,警告用户出版商不知道,并建议他们不要运行该软件。这是不可取的。
  2. 如果我用一个自认证的密钥在安装程序上签名,弹出对话框将至少提供一个发布者名称,而不是“未知”。它会说,发布服务器无法被验证,或者发布服务器不受信任。这可能比被描述为一个不知名的出版商稍微好一些。
  3. 如果我每年向CA支付100美元,我就可以得到一个代码签名证书,这样我就可以分发有用的免费软件,这些软件可以很容易地安装,而不会出现可怕和令人讨厌的对话。
  4. 我可以使用OpenSSL的Windows版本创建一个用于代码签名的自认证密钥。这样,我就不必从MS下载一个590 MB的SDK文件来获取微软的makecert.exe
  5. 捕获22:我听说过的唯一的代码签名工具是signtool.exe,它只能通过下载和安装至少590 MB的其他东西( SDK)才能获得。

问:除了微软的signtool.exe之外,还有别的选择吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-09-24 23:22:56

kSign,他们的博客也有一篇关于如何与Inno安装程序集成的文章。

它并不是签名工具的完全替代(也就是说,它不会对与签署驱动程序包有关的.cat和.sys文件进行签名),但它将对EXE、DLL、COM、CAB和OCX文件进行数字签名。

票数 7
EN

Stack Overflow用户

发布于 2015-02-10 07:40:20

signtool的另一种选择是单声道signcode。有一个非常有用的文章,用于将证书转换为SPC/PVK格式并使用Authenticode对EXE进行签名:

将PFX转换为SPC/PVK

代码语言:javascript
运行
复制
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

代码语言:javascript
运行
复制
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

密码酶

与接受密码作为命令行参数的signtool不同,似乎必须在标准输入中给signcode提供密码。我能够使用signcode [arguments] < passphrase.txt

票数 3
EN

Stack Overflow用户

发布于 2014-01-09 12:11:52

捕获22:我听说过的唯一的代码签名工具是signtool.exe,它只能通过下载和安装至少590 MB的其他东西( SDK)才能获得。

不是的。您不需要安装整个SDK来安装signtool.exe。使用并选择只安装“工具”。

然而,坏消息是,如果您没有CA签名证书,则没有签名工具可以帮助您绕过Windows警告,因为不可能凭空创建一些东西。好消息是,许多CA为开源开发人员提供了免费的代码签名证书,但您应该使用它只对免费软件进行签名。所以,这是你的选择:向CA付费并继续出售你的软件,或者不付费并免费分发软件。看上去很公平。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18211594

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档