我制作了自己的CA,然后是.pfx文件。我正在使用Wix工具集来构建安装程序。
在wix项目文件中,我用以下内容编辑了它;
<PropertyGroup>
<SignOutput>true</SignOutput>
</PropertyGroup>
<PropertyGroup>
<sourceRoot>$(OutputPath)..\..</sourceRoot>
</PropertyGroup>
<Target Name="SignMsi">
<Exec Command='"$(sourceRoot)\Keys\signtool.exe" sign /v /f "$(sourceRoot)\Keys\myCA.pfx" /t http://timestamp.verisign.com/scripts/timstamp.dll /v /d "%(SignMsi.Filename)" "@(SignMsi)"' />
</Target>
<Target Name="SignCabs">
<Exec Command='"$(sourceRoot)\Keys\signtool.exe" sign /v /f "$(sourceRoot)\Keys\myCA.pfx" /t http://timestamp.verisign.com/scripts/timstamp.dll /v /d "%(SignCabs.Filename)" "@(SignCabs)"' />
</Target>
然后我在Visual Studio中构建它,它成功构建,甚至签名显示成功。
然而,在UAC的推动下,它仍然是出版商未知。
答案 0 :(得分:5)
根据之前的讨论,您似乎正在尝试签署安装程序,将其分发给您的用户并希望UAC显示您的发布商名称。
仅当您使用来自受信任的证书颁发机构的代码签名证书对安装程序包进行签名时,此操作才有效。您无法使用自己的CA来创建证书,因为您的用户并不知道您的CA是受信任的。系统。如果每个人都可以简单地创建自己的CA,那么任何人都不会对签名代码有任何信任。您可能只会将此视为产生收入的方法,但证书确实不是那么昂贵(<200美元/年)。由于它可用于签署任意数量的代码,因此对于信誉良好的公司而言,这不应成为成本问题。
进一步阅读:http://www.codeproject.com/Articles/325833/Basics-of-Signing-and-Verifying-code
答案 1 :(得分:1)
我想自己回答这个问题,因为我认为这里存在一些非常大的误解。您可以制作自己的证书并将其添加到您自己的商店,然后UAC将为蓝色/绿色,并且将显示发布者。 100%信任。当然关键是您制作的CA证书必须在商店中。这是导致部署问题的一点,但我希望如果我将我的证书带到其他计算机,我可以将它添加到商店,然后我将显示为发布者。
我的证书存在一些问题需要修复。我知道我使用
有问题signtool verify /v /pa mysigned.exe
这告诉我事情不正确以及需要解决的问题。
答案 2 :(得分:0)
如果计算机上的时间关闭,我也会发生这种情况。您可以通过右键单击以查看安装程序属性并查看证书来判断是否是这种情况。如果它说时间戳可能无效,请检查计算机上的时间。