10

我正在尝试创建一个测试证书并签署一个我创建的 .MSI 文件。在我们购买真正的安全证书之前,我需要让测试版本与签名的 .MSI 一起使用。

我已执行以下步骤来签署我的 .MSI 文件。一切都成功完成,并显示一条消息,表明在最后一步之后成功签署了 1 个文件。

makecert.exe -sv c:\Test\mykey.pvk -n "CN=WTS" c:\Test\myCert.cer

cert2spc.exe c:\Test\mycert.cer c:\Test\mycert.spc

pvk2pfx -pvk c:\Test\mykey.pvk -pi password -spc c:\Test\mycert.spc -pfx c:\Test\mycert.pfx -po password

signTool sign /f c:\Test\mycert.pfx /p password /v c:\Test\test.msi

执行这些步骤后,我运行 .MSI 文件(为 .MSI 修改的日期确实会更改以匹配运行 signTool 步骤的时间)。表示此 .MSI 来自未知发布者的警告消息仍显示为“发布者:未知”。

我错过了一步吗?一切似乎都正常工作,我从来没有看到任何错误,但我的文件似乎没有签名。

4

3 回答 3

10

您的文件已签名。Windows 将发布者声明为未知,因为它不信任签名中的发布者标识。

请记住,在数字签名的世界中,您总是需要同时验证至少两件事,否则整个练习毫无意义。您必须检查签名上的名称,并且您还需要从您已经信任的东西(例如,证书颁发机构或手动添加为受信任的证书)中找到一个信任链接,直到您正在检查的签名。只有这样才有意义信任签名上的名称,并可能将其显示给操作系统用户。

在您的网络浏览器中,转到工具/Internet 选项/内容/发布者/证书并将您的测试证书添加到受信任的发布者。

(其他浏览器在设置/显示高级设置/HTTPS/SSL/管理证书下可能具有相同的功能。)

并重试。它不起作用,但我真的不知道为什么,这是一个有启发性的游戏。

如果您的证书是自制的并且没有证书颁发机构支持,则尚不清楚 Windows 是否有办法建立信任链。 这个消息来源说:

如果您使用测试(自行创建)证书,安装对话框将显示“未知发布者”消息。对于组织内部部署的应用程序,这是一种可接受的做法。”

但是,您可以按照此处所述创建自己的证书颁发机构,并在受信任的根证书颁发机构下添加 CA 证书。通过这样做,您基本上可以让该 CA 颁发的任何证书签署任何内容并被 Windows 信任。

于 2012-06-18T20:06:53.997 回答
2

我遇到了同样的问题,发现微软不再信任具有“sha 1”算法的证书。

我通过要求我的 CA 更换证书解决了这个问题。

于 2016-04-30T09:40:46.823 回答
1

如果您在签署包时没有使用开关“/d”来指定描述,也会发生这种情况。在此页面上的“签名命令选项”下查看更多详细信息:http: //msdn.microsoft.com/en-us/library/8s9b9yaz.aspx

于 2012-06-19T13:13:28.497 回答