无法将证书链构建到受信任的根颁发机构

Posted

技术标签:

【中文标题】无法将证书链构建到受信任的根颁发机构【英文标题】:A certificate chain could not be built to a trusted root authority 【发布时间】:2018-04-20 22:27:07 【问题描述】:

.NET Framework 4.6.2 安装过程中出现错误:

.NET Framework 安装失败:-2146762486。证书链 无法构建到受信任的根权限

MSDN Blog link 给出了上述错误的解决方案,它说要执行以下步骤:

1.在本地下载证书http://www.microsoft.com/pki/certs/MicRooCerAut2011_2011_03_22.crt(例如:C:\Temp)

2. 您可以使用 certmgr.exe 实用程序通过命令行添加证书。有关详细信息,请参阅 MSDN 上的 Certmgr.exe(证书管理器工具)主题。

3. 打开管理员命令提示符并运行以下命令:certmgr.exe /add C:\Temp\MicRooCerAut2011_2011_03_22.cer /s /r localMachine root

4.接下来,尝试安装补丁 KB3135996 或 KB3136000

我的问题:

.NET framework 4.6.2 的安装必须在多个生产系统上完成,所以,上述步骤是否标准?我的意思是,在多个系统上安装相同的证书会不会产生问题?当系统在某个时候连接到互联网时,会不会产生冲突?

PS:通过将系统连接到 Internet 来解决这个问题(管理证书)对我来说不是一个选择,因为整个过程必须离线

【问题讨论】:

这篇文章帮助我解决了安装 KB3151800 以获取 .NET 4.6.2 以在无法访问 Internet 的机器上安装我需要的其他一些软件的问题。不过,我使用 GUI 将证书直接安装到受信任的商店。谢谢。 这也帮助我成功安装了4.7.1。谢谢(我也是用GUI直接安装的)。 【参考方案1】:

在多个系统上安装相同的证书会产生问题吗?

不,即使将来系统连接到互联网也不会有问题。

当您将系统连接到互联网并进行更新时,它可以下载一组受信任的证书。这些证书将被添加到受信任的根存储中。现有的将被 IMO 简单地替换。

【讨论】:

【参考方案2】:

我最近在无法访问 Internet 的防火墙后面遇到了这个问题。我在 .NET Framework 4.6.2 MSI 上运行 /extract 并且能够直接运行 x64 安装程序而无需进行证书检查。也许不是“正确”的方式,但它奏效了。

【讨论】:

【参考方案3】:

几乎有同样的问题。 visual c++ error 0x800b010a 找不到要下载的证书。安装了firefox,然后重试安装c++并修复了问题。必须是火狐浏览器安装这些证书。

【讨论】:

【参考方案4】:

我在 Win 7 sp1 中也遇到了同样的问题。

解决方法如下:

    从 Microsoft 下载证书文件:MicrosoftRootCertificateAuthority2011.cer

如果哪天链接失效,你可以从MicrosoftRootCertificateAuthority2011.cer - github下载。

    双击刚才下载的.cer文件,然后安装证书如下图:

    重新安装 .NET Framework 4.6.2 安装包。

那么问题就解决了。希望对你有帮助。

【讨论】:

非常有帮助,非常感谢!我在Win 7 SP1上离线安装.NET framework 4.7.1时遇到了这个问题,通过这种方法解决了这个问题。但是,最好用文本描述步骤,因为屏幕截图往往会消失(我注意到图像来自您自己的存储库,但仍然......)。 适用于 Net Framework 4.7.1 和 Windows 7 SP1 谢谢 ;) 非常有帮助 证书应包含在KB2813430 或KB3004394 中。 该解决方案对我不起作用。我得到“时间戳签名和/或证书无法验证或格式错误。”错误。 对于我遇到的那个错误,需要 KB4474419 和 KB4490628 更新以支持 SHA-2 代码签名。【参考方案5】:

只是想说我在尝试在 Windows Server 2008 R2 机器上安装 .NET 4.7.2 时遇到了类似的问题。我必须先将它升级到 Win 2k8r2 SP1,然后添加 d3ddecomplier.dll (KB4019990) 的先决条件更新,然后我必须加载上述证书存储。毕竟,我终于能够安装 .NET 4.7.2。

【讨论】:

【参考方案6】:

在 OhioDeveloper 的带领下,我基本上对所有在此戴尔 OptiPlex 3040 中安装时出错的戴尔驱动程序包做了同样的事情...... 我从一家正在关闭并因此清算所有资产的企业购买了几台紧凑型 OptiPlex 3040

我一直在努力尝试做一个全新的 Windows 7,在戴尔上安装并遇到同样的问题......(Net Framework 4.8)在开始时抛出一个(根信任证书 - 错误)在解压所有文件并检查主机环境之后进行安装。

首先我使用 (7-Zip) [免费软件],将它指向 Net Framework 安装文件,并告诉它解压... 7-zip 将创建一个文件夹(名称匹配),其中包含文件的所有提取内容。

~ 如果您不熟悉打开安装文件以查看其中包含的内容,这部分可能看起来“有风险”,但我们在这里所做的只是手动运行您系统的特定文件并忽略其他所有内容。 ~

您正在寻找 ( .MSI ) 文件。 比如……

Netfx_???????_x64.msi

有许多名称相似的文件,它们仅位于中间 (??????) 部分,并且名称中包含 (x86) 或 (x64)。


If you’re on a 32 bit system, use the files with x86 in the file name.

If you’re on a 64 bit system, use the files with x64 in the file name.

...在这一点上,我不知道哪个是 ( ????? ) 要使用的文件的变体。 有 4 种文件命名变体。

核心/扩展/ 完整/补丁

这 4 种文件名变体根本没有帮助... 我不确定这是否会升级,因为实际上(Net Framework 3.something)已经随 Windows 一起安装了。

CORE,始终是一个重要的文件名,听起来很重要,但实际上却一无所获......

扩展,听起来很傻,又一次无所遁形。

所以我选择了 FULL,希望它能够“完成所有工作”并消除猜测。所以我选择了 ( ...FULL_x64... ) 版本。

所以我运行了 NETFX_FULL_x64.msi ,我很高兴地报告 (Net Framework 4.8) 安装没有错误。

...希望这个详细的演练对某人有所帮助。

~科技德鲁伊

抱歉,啰嗦了这么多,这是为了帮助没有(或从未)尝试过非传统工作的用户修复 WINDOWS 错误。

【讨论】:

【参考方案7】:

另一个对我有用的在新的 win 7sp1 中安装 net 4.8 的简单解决方案是使用 rootupd.exe 更新证书,您可以从这里下载它https://web.archive.org/web/20170829230259/http://www.download.windowsupdate.com/msdownload/update/v3/static/trustedr/en/rootsupd.exe

无需安装,运行即可,不会出现窗口,会自动更新证书

【讨论】:

【参考方案8】:

对于在 Windows 7 中遇到此问题的用户:the timestamp signature and/or certificate could not be verified or is malformed. 可以通过 sucurity 更新解决:

Windows 7 64 位:

官方网址:https://www.microsoft.com/en-us/download/details.aspx?id=46148

如果微软放弃它,请使用 Github URL GitHub地址:https://github.com/felloz/Sec_win7_64x_update/blob/master/Windows6.1-KB3033929-x64.zip

Windos 7 32 位

官方网址:https://www.microsoft.com/en-ie/download/details.aspx?id=46078

如果微软放弃它,请使用 Github URL GitHub地址:https://github.com/felloz/Sec_win7_86x_update/blob/master/Windows6.1-KB3033929-x86.zip

只需安装安全更新,重新启动计算机并再次尝试安装 .net,它也适用于 4.8。

此人在 YouTube 上的所有功劳:https://www.youtube.com/watch?v=tIMEsfLJX04

【讨论】:

为我工作!

以上是关于无法将证书链构建到受信任的根颁发机构的主要内容,如果未能解决你的问题,请参考以下文章

“.net4.5安装错误 无法建立到信任根颁发机构的证书链”是啥意思?

通过 SSL 进行 WCF 通信:由于第三方受信任的根证书颁发机构导致的 WCF 访问问题

突然 - '证书链是由在 Microsoft.Data.SqlClient 中不受信任的机构颁发的'在工作项目中

将证书添加到受信任的根证书存储失败,出现以下错误:访问控制列表(ACL)结构无效

如何将浏览器中不受信任的证书手动设置为信任

将新的受信任 CA 添加到 Azure 上的证书颁发机构证书存储区