5

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

签署 Windows EXE 文件和其他来源我的理解如下:

  1. 如果我不签署安装程序,Windows 将弹出一个警告对话框,警告用户发布者未知,并建议他们不要运行该软件。这是不可取的。

  2. 如果我使用自认证密钥签署安装程序,弹出对话框将至少提供发布者名称而不是“未知”。它会说发布者无法验证或发布者不受信任这可能比被描述为未知的出版商要好一些。

  3. 如果我每年向 CA支付约 100 美元,我可以获得一个代码签名证书,这将允许我赠送可以轻松安装的有用的免费软件 - 不会出现可怕和令人反感的对话。

  4. 我可以使用 Windows 版本的 OpenSSL 来创建用于代码签名的自认证密钥。这样我就不必从 MS 下载安装 590 MB SDK 文件来获取 Microsoft 的makecert.exe

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

问:有没有微软的替代品signtool.exe

4

4 回答 4

7

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

它不是 signtool 的完全替代品(即它不会对签署驱动程序包所涉及的 .cat 和 .sys 文件进行签名),但它将对 EXE、DLL、COM、CAB 和 OCX 文件进行数字签名。

于 2013-09-24T23:22:56.760 回答
3

An alternative to signtool is Mono's signcode. Mozilla Developer Network has a very useful article on converting your certificate to SPC/PVK format and signing your EXE with Authenticode:

Convert PFX to SPC/PVK

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

Sign 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

Passphrases

Unlike signtool, which accepts the passphrase as a command-line argument, it seems like signcode must be given the passphrase on standard input. I was able to use signcode [arguments] < passphrase.txt.

于 2015-02-10T07:40:20.600 回答
0

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

不,您无需安装整个 SDK 即可安装 signtool.exe。使用 SDK Web 安装程序并选择仅安装“工​​具”。

但是,坏消息是,如果您没有 CA 签名证书,则没有签名工具可以帮助您绕过 Windows 警告,因为不可能从无到有地创建某些东西。好消息是许多 CA 为开源开发人员提供免费的代码签名证书,但您应该只使用它来签署免费软件。因此,这是您的选择:向 CA 付费并继续销售您的软件,或者不付费并免费分发。它看起来很公平。

于 2014-01-09T12:11:52.090 回答
0

试试这个免费的应用程序,它还允许您设置已签名可执行文件的其他属性,例如公司名称、详细信息、产品名称等。

于 2015-12-04T19:20:34.840 回答