我突然出了点问题。通常,我能够以一种方式为MSI安装软件包构建补丁,以便在应用该修补程序时不需要管理员权限--使从标准用户帐户更新已安装的应用程序成为可能。引导程序EXE、安装包MSI和修补程序MSP都使用相同的有效证书进行签名。
现在,我突然遇到了一个问题,这个问题已经不起作用了。安装修补程序时,它会弹出询问管理员密码的UAC对话框。因此,我启用了补丁安装的日志记录,这是Microsoft安装程序告诉我的:
MSI (s) (58:40) [09:11:17:787]: Certificate of signed file 'C:\Windows\Installer\23f85ae.msp' differs in size with the certificate authored in the package
MSI (s) (58:40) [09:11:35:025]: MSI_LUA: Credential Request return = 0x800704C7
This installation is forbidden by system policy. Contact your system administrator.但是我用(exe、msi、msp)签署的所有文件的证书是完全相同的。有什么建议吗?(WIX用于编写安装包)
编辑:另外,我尝试从构建的MSI和MSP包中提取证书,它们的大小是相同的。因此,我不太明白为什么我会在Microsoft安装程序日志中获得该修补程序的错误消息。
发布于 2014-07-07 08:48:45
好的,我终于找到了这个问题,包中确实有一个证书,它的到期日已经过去很久了。然而,为什么安装问题是现在才遇到的,而在不久之前,这个问题仍然是个谜。
哦好吧..。
发布于 2016-09-30 06:38:59
我也在研究同样的问题。在尝试安装.msp修补程序时,安装程序给了我相同的消息:“已签名文件的证书'C:\Windows\Installer.....msp‘的大小与包中编写的证书不同”
我想分享我的解决方案。我花了两天才弄清楚。
我的问题是,我嵌入到MsiPatchCertificate表中的证书是不同格式的。它必须采用更好的格式。若要将证书从PEM转换为DER格式,请使用:
openssl x509 -outform der -in cert.pem -out cert.cer
https://stackoverflow.com/questions/24547324
复制相似问题