不打补丁的火星 Windows 7,安装 .net 4.X 失败,时间戳签名和/或证书无法验证或已损坏

作者:一年又一年 分类: 发布时间:2021-6-3 18:13 1308 次浏览 3 条评论

我有一台 Windows 7 的虚拟机,不用想,没有打过安全补丁,是一个火星 Windows 7。今天找出来测试软件,要装 .net 4.7 运行库,本来跃跃欲试了,结果进度条走一半安装失败,原因如题。错误代码:0x80096005。对应英文版应该是:The timestamp signature and/or certificate could not be verified or is malformed.

懂技术的朋友应该能明白其中的缘由,是系统由于没有打过安全补丁,内置的信任根证书列表太旧失效了,无法验证、信任微软自家用新证书签名的 msi 安装程序(主要是时间戳证书无法验证可信),导致微软“我杀我自己”阻止了安装。为了安全嘛,验证系统库安装程序签名并阻断不信任的情况,应该的应该的,道理我都懂。但我理解现在的这个局面的症结,真想让 Windows 无视证书错误继续安装,但可惜 Windows 是个程序,不是工程师,无法和他交流表明技术意图让他给我变通变通

解决方法:

  • 对一般用户)装 KB3033929 补丁[1]64 位32 位),让万年不打补丁的火星 Windows 7 系统更新一下内置的受信任的根证书。
  • (对技术用户)有一定技术基础的话,不打补丁也可以,直接从证书链上信任根证书:进入安装界面后先不点安装,找到解包的 msi 安装程序文件,位于启动 installer 时自解包到的临时目录下(一般是 C:\一串随机字符\),右键属性查看 msi 文件的数字签名,检查签名证书和时间戳证书详情,它们的证书链上的根证书应该有红叉提示不可信的,选中不可信的根证书,直接安装到受信任的根证书颁发机构。大概就是这样,懂得都懂。没懂、做不来就老实装补丁。毕竟这种操作让用户来做肯定是大大的错误,不合规不安全,但是你是极客,所以才我分享这种做法,非技术用户请勿依照执行。这种做法能过安装(我就是这种方式做的),但没打补丁,不排除因根证书信任不全,而在后续使用中翻车的风险可能。

目前在中文互联网上,我似乎没有搜到对这个问题的来龙去脉解释得比较清楚的文章。有一些博客文章指出了要下载根证书安装信任,但可惜那些文章提供的根证书下载,和我这边遇到的时间戳所需要装的根证书不是同一个。只能说思路是对的,但是提供资源时没考虑泛化情况,有些不负责,授人以鱼不如授人以渔。所以,我解决之后就写了这篇文章,希望能帮到更多人吧。不过这个问题和需求确实挺小众的,除了那些内网隔离、特殊场景的系统,普通 C 端用户的系统打上补丁的比例和概率应该还是蛮高的。

[1] 本文提供的补丁信息来源于 YouTube 上的这个视频:https://www.youtube.com/watch?v=tIMEsfLJX04

Windows

♥ 若您欲转载敝站的原创内容,还请您附注出处及相应链接

评论

  1. Avatar of 竹林里有冰
    竹林里有冰 2021-09-19 18:38 回复

    收藏了

  2. Avatar of DOUCHES FROIDES
    DOUCHES FROIDES 2021-07-26 21:46 回复

    我的win7连补丁都没办法安装 要咋办啊

  3. Avatar of KohiMakoto
    KohiMakoto 2021-06-18 10:37 回复

    非常感谢大佬的文章,帮大忙了

发表评论

* 标注的项目为必填项。

您的邮箱地址将不会在页面中公开
您的站点地址将会被检查,如被认为不适则可能被移除
Ɣ回顶部