我正在尝试创build一个testing证书并签署一个我创build的.MSI文件。 在购买真正的安全证书之前,我需要获得带有签名.MSI的testing版本。
我已经执行了以下步骤来签署我的.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 /fc:\Test\mycert.pfx /p password /vc:\Test\test.msi
执行完这些步骤之后,我运行.MSI文件(为.MSI修改的date确实更改为与signTool步骤的运行时间相匹配)。 警告消息说这个.MSI是来自一个未知的出版者仍然显示为“发行者:未知”。
我错过了一步或什么? 一切似乎工作正常,我从来没有看到任何错误,但我的文件似乎没有签署。
您的文件已签名。 Windows将发布者声明为未知,因为它不信任签名中的发布者标识。
请记住,在数字签名的世界里,你总是需要一次验证至少两件事情,否则整个练习是没有意义的。 您必须检查签名上的名称,还需要找到您已经信任的某个信任链接(例如证书颁发机构或手动添加为可信的证书)直至您正在检查的签名。 只有这样才能有效地信任签名上的名称,并且可能将其显示给操作系统用户。
在您的网络浏览器中,转至工具/ Internet选项/内容/发布者/证书,并将您的测试证书添加到受信任的发布者。
(另一个浏览器可能在设置/显示高级设置/ HTTPS / SSL /管理证书下具有相同的功能。)
然后重试。 它不会工作,但我不知道为什么,这是一个有益的游戏。
如果您的证书是自制的,并且没有证书授权机构来支持,建立信任链的方式在Windows上还不清楚。 这个消息来源说:
如果使用测试(自行创建的)证书,安装对话框将显示“未知的发布者”消息。 对于在组织内部署的应用程序,这是一个可以接受的做法。“
但是,您可以按照此处所述创建自己的证书颁发机构,并在受信任的根证书颁发机构下添加CA证书。 通过这样做,你基本上可以让任何由CA签发的证书签名,并被Windows信任。
如果您在签署软件包时没有使用开关“/ d”指定描述,也会发生这种情况。 请参阅此页面上的“签署命令选项”下的更多详细信息: http : //msdn.microsoft.com/en-us/library/8s9b9yaz.aspx
我有同样的问题,发现微软不再信任“sha 1”算法的证书。
我通过要求我的CA来替换证书来解决问题。