我有一个EXE文件,我想签名,以便Windows不会警告最终用户有关“未知发布者”的应用程序。我不是Windows开发人员。有问题的应用程序是从生成屏幕保护程序应用程序的应用程序生成的屏幕保护程序。因此,我对文件的生成方式没有影响。
我已经发现我需要code signing证书,如CA或instantssl.com。我不明白的是我需要做什么(如果可能的话)签署我的EXE文件。什么是简单的解释?
Mel Green的回答让我更进一步,但是signtool要我指定在任何情况下使用哪种证书。我可以以某种方式获得免费的代码签名证书来测试这对我是否有用吗?
另请注明哪种证书类型是正确的。大多数网站只提到“代码签名”,并谈论签署用户实际编译的应用程序。对我来说情况并非如此。
你可以尝试使用Verisign
您可以将其作为Windows SDK for Windows Server 2008和.NET 3.5的一部分下载。下载后,您可以从命令行使用它,如下所示:
signtool sign / a MyFile.exe
这使用可用的“最佳证书”签署单个可执行文件。 (如果您没有证书,它将显示SignTool错误消息。)
或者您可以尝试:
signtool signwizard
这将启动一个向导,引导您完成对应用程序的签名。 (在Windows SDK 7.0之后,此选项不可用。)
如果您希望获得可用于测试签名可执行文件的过程的证书,则可以使用.NET工具Makecert。
一旦您创建了自己的证书并使用它来签署可执行文件,您就需要手动将其添加为您的计算机的受信任的根CA,以便Certificate Creation Tool (Makecert.exe)告诉用户运行它来自可靠的来源。重要。 UAC您可以在代码和Windows中找到有关完成此操作的更多信息:
希望这为试图这样做的人提供更多信息!
你可以得到一个 自由 廉价代码签名证书Installing a Self-Signed Certificate as a Trusted Root CA in Windows Vista如果你正在进行开源开发。
我已经使用他们的证书超过一年了,它确实从Windows中删除了未知的发布者消息。
至于签名代码我从这样的脚本使用from Certum:
signtool.exe
ASP的杂志ASPects详细描述了如何签署代码(您必须是会员才能阅读该文章)。你可以通过signtool.exe sign /t http://timestamp.verisign.com/scripts/timstamp.dll /f "MyCert.pfx" /p MyPassword /d SignedFile.exe SignedFile.exe
下载它
这里是一个描述如何http://www.asp-shareware.org/的链接。
我的工作中有同样的情况,这是我们的发现
您需要做的第一件事是获取证书并将其安装在您的计算机上,您可以从证书颁发机构购买证书或使用makecert生成证书。
以下是2个选项的优缺点
买证书
使用Makecert生成证书
签署可执行文件
签名所需的文件有两种方法:
测试你的签名
方法1:使用signtool
转至:开始>运行键入CMD>单击确定在命令提示符下,输入存在signtool的目录运行以下命令:
signtool.exe验证/ pa / v“C:\ filename.dll”
方法2:使用Windows
右键单击签名文件选择属性选择“数字签名”选项卡。签名将显示在“签名列表”部分中。
我希望这可以帮到你
资料来源:
另一个选择,如果您需要在Linux机器上签署可执行文件,请使用https://msdn.microsoft.com/en-us/library/windows/desktop/aa386968(v=vs.85).aspx中的signcode。这是Mono project tools。
参考supported on Ubuntu注意:来自Microsoft SDK的signtool.exe
1.第一次(制作私人证书)
Makecert -r -pe -ss YourName YourName.cer
certmgr.exe -add YourName.cer -s -r localMachine root
2.之后(将您的标志添加到您的应用)
signtool sign / s YourName YourApp.exe
还有另外一个选择,如果你在Windows 10上开发但没有安装微软的signtool.exe,你可以在Windows上的Ubuntu上使用Bash来签署你的应用程序。这是一个故障:
https://steward-fu.github.io/website/driver/wdm/self_sign.htm
使用以下链接签署.exe(安装程序/安装程序)文件(不使用Microsoft setup signtool签署exe / setup文件)
https://blog.synapp.nz/2017/06/16/code-signing-a-windows-application-on-linux-on-windows/
示例命令java -jar jsign-2.0.jar --keystore keystore.jks“--alias alias --storepass password MyInstaller.exe
为我工作:)