gpt4 book ai didi

c# - 如何对可执行文件进行数字签名?

转载 作者:IT王子 更新时间:2023-10-29 04:24:21 24 4
gpt4 key购买 nike

我正在编写需要管理权限的软件。当弹出 UAC 对话框时,它会针对数字签名软件显示与未签名软件不同的弹出窗口。我相信对我的软件进行数字签名将使用户更容易信任我的软件。对软件进行数字签名需要花费数千美元,还是免费的?有简单的方法吗?我在 Google 周围搜索了一下,得到的只是如何签署 PHP、XML 和 PDF 文件,这不是我想要的。我需要签署我的软件可执行文件。

刚刚看到有关 sigtool.exe 的信息?这是正确的方向吗?那些复杂的 .pfx 文件和 Authenticode 或其他什么?

最佳答案

如其他答案中所述,您首先需要购买适合代码签名的证书。这将花费几百美元,远不及一千美元。当我用 Globalsign 更新我公司的证书时最近,还有一项检查公司是否合法的调查-因为我在注册过程中使用了手机号码,他们要公司会计师的来信来验证我们是真实的企业。

为了签署可执行文件,我使用了 MSBuild 任务。以下是相关文章的摘录:

<!--
Installer files that need to be signed.
-->
<ItemGroup>
<InstallerSignedFiles Include="$(BuildRoot)path\to\myinstaller.msi"/>
<InstallerSignedFiles Include="$(BuildRoot)path\to\setup.exe"/>
</ItemGroup>

<Target Name="ReleasePackaging">
<!-- Sign the files we're going to release -->
<SignTool
CertificateStoreName="My"
CertificateSubjectName="MyCompany"
Description="My application description"
TimestampServerUrl="http://timestamp.verisign.com/scripts/timstamp.dll"
TargetFiles="@(InstallerSignedFiles)"
/>
</Target>

要像上面那样工作,您需要将证书安装到您的个人证书库中(参见上例中的 CertificateStoreName="My")。在 Globalsign 网站上,此安装是证书下载过程的自动部分。注意:我发现下载证书时使用 Internet Explorer 会有所帮助,因为它与 Windows 证书存储区集成在一起。一旦它位于下载计算机的证书存储中,您就可以 export it as a pfx file ,将其传输到您的构建机器,然后将其导入那里。如果您确实导出它,我建议您使用密码保护导出的文件,以防它落入坏人之手。

当您使用上述 SignTool MSBuild 任务时,它会从与当前 Windows 用户帐户关联的个人存储(“我的”)中读取证书。这意味着您可以控制谁可以使用您的证书签署代码,这是一件好事。您应该只将证书导入您信任的开发人员的个人商店。

最好在对代码进行签名时使用时间戳服务器,这样证书过期时就不需要重新对代码进行签名了。

关于c# - 如何对可执行文件进行数字签名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3128205/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com