注意
发布日期:
2022 年 6 月 22 日
[2023/07/04] 已修订以包括缺少的 Windows 10 版本 1607 和 1507 版本
[2023/07/24] 已修订以添加 2023 年 7 月 11 日安全和质量汇总解决方案的发布详细信息
摘要
本文提供的帮助有助于缓解以下问题:安装 2023 年 6 月 13 日的 .NET Framework 和 .NET 更新后,用户可能会遇到 .NET Framework 运行时如何导入 X.509 证书的问题。
问题
使用 X509Certificate、 X509Certificate2或 X509Certificate2Collection 类导入包含私钥的 PKCS#12 blob 时,调用应用程序可能会观察到以下异常。
- System.Security.Cryptography.CryptographicException: 未提供密码的 PKCS12 (PFX) 已超出允许的最大迭代次数。 有关详细信息,请参阅 https://go.microsoft.com/fwlink/?linkid=2233907。
此故障会影响在没有密码的情况下导出 [例如,通过 X509Certificate.Export(X509ContentType.Pfx)] 的 PKCS#12 blob。 故障可能不确定地发生。
解决方法
Microsoft 已发布 .NET Framework 和 .NET 的更新安装程序来解决此问题。 无论计算机是否已应用原始 2023 年 6 月 13 日、.NET Framework 和 .NET 安全更新,这些安装程序都可以应用于受影响的计算机。
重要
- 如果以前使用了 KB5025823 .NET 应用程序导入 X.509 证书的方式的更改 中记录的注册表开关来解决此问题,请在安装新修补程序之前删除这些注册表开关。 从提升的命令提示符运行以下两个命令以删除注册表开关。
reg delete "HKLM\Software\Microsoft\.NETFramework" /v Pkcs12UnspecifiedPasswordIterationLimit /reg:32reg delete "HKLM\Software\Microsoft\.NETFramework" /v Pkcs12UnspecifiedPasswordIterationLimit /reg:64
解决方案
此问题已在 2023 年 6 月 22 日发布的带外更新中得到解决,适用于 .NET Framework 4.6.2 及受此问题影响的 Windows 和 Windows Server 版本的较新版本。 若要获取这些带外更新的独立包,请在 Microsoft 更新目录中搜索 KB 编号。 可以手动将这些更新导入到 Windows Server Update Services (WSUS) 和 Microsoft Endpoint Configuration Manager。 有关 WSUS 说明,请参阅 WSUS 和目录站点。 有关配置管理器说明,请参阅 从 Microsoft 更新目录导入更新。
如果对此问题使用了任何解决方法或缓解措施,则你不再需要它们,建议将它们删除。 要删除解决方法,请查看已针对说明应用的解决方法或备用解决方法。
| 产品版本 | 更新 | 知识库文章 |
|---|---|---|
| Windows 11 版本 22H2 | ||
| .NET Framework 4.8.1 | 目录 | 5028576 |
| Windows 11 版本 21H2 | ||
| .NET Framework 4.8 | 目录 | 5028582 |
| .NET Framework 4.8.1 | 目录 | 5028575 |
| Windows Server 2022 | ||
| .NET Framework 4.8 | 目录 | 5028584 |
| .NET Framework 4.8.1 | 目录 | 5028578 |
| Azure Stack HCI 版本 22H2 | ||
| .NET Framework 4.8 | 目录 | 5028584 |
| Azure Stack HCI 版本 21H2 | ||
| .NET Framework 4.8 | 目录 | 5028584 |
| Windows 10 版本 22H2 | ||
| .NET Framework 4.8 | 目录 | 5028579 |
| .NET Framework 4.8.1 | 目录 | 5028574 |
| Windows 10 版本 21H2 | ||
| .NET Framework 4.8 | 目录 | 5028579 |
| .NET Framework 4.8.1 | 目录 | 5028574 |
| Windows 10 1809 (2018 年 10 月更新) 和 2019 Windows Server | ||
| .NET Framework 4.7.2 | 目录 | 5028588 |
| .NET Framework 4.8 | 目录 | 5028581 |
| Windows 10 1607 (周年更新) 和Windows Server 2016 | ||
| .NET Framework 4.6.2、4.7、4.7.1、4.7.2 | 目录 | 5028623 |
| .NET Framework 4.8 | 目录 | 5028580 |
| Windows 10 1507 | ||
| .NET Framework 4.6、4.6.2 | 目录 | 5028622 |
| Windows Embedded 8.1 和 Windows Server 2012 R2 | ||
| .NET Framework 4.6.2、4.7、4.7.1、4.7.2 | 目录 | 5028590 |
| .NET Framework 4.8 | 目录 | 5028585 |
| Windows Embedded 8 和 Windows Server 2012 | ||
| .NET Framework 4.6.2、4.7、4.7.1、4.7.2 | 目录 | 5028589 |
| .NET Framework 4.8 | 目录 | 5028583 |
| Windows Embedded 7 Standard 和 Windows Server 2008 R2 SP1 | ||
| .NET Framework 4.6.2、4.7、4.7.1、4.7.2 | 目录 | 5028591 |
| .NET Framework 4.8 | 目录 | 5028586 |
| 所有受支持的 Windows 版本 | ||
| .NET 6.0.19 | 目录 | 5028613 |
| .NET 7.0.8 | 目录 | 5028614 |
此问题已在 2023 年 7 月 11 日发布的常规累积汇总中得到解决,适用于所有受支持的 Windows .NET Framework 版本和受此问题影响的 Windows Server 版本。 安全和质量汇总可通过 Windows 更新、Windows Server Update Services 和 Microsoft 更新目录获得。
注意:依赖 Windows 更新和 Windows Server Update Services 的客户将自动收到特定于 .NET Framework 版本的更新。 高级系统管理员还可以使用以下直接 Microsoft 更新目录下载链接,以获取特定于 .NET Framework 的更新。 在应用这些更新之前,请确保仔细查看 .NET Framework 版本适用性,以确保仅在应用这些更新的系统上安装更新。
如果对此问题使用了任何解决方法或缓解措施,则你不再需要它们,建议将它们删除。 要删除解决方法,请查看已针对说明应用的解决方法或备用解决方法。
| 产品版本 | 更新 | 知识库文章 |
|---|---|---|
| Windows 11 版本 22H2 | ||
| .NET Framework 3.5、4.8.1 | 目录 | 5028851 |
| Windows 11 版本 21H2 | ||
| .NET Framework 3.5、4.8 | 目录 | 5028856 |
| .NET Framework 3.5、4.8.1 | 目录 | 5028850 |
| Windows Server 2022 | ||
| .NET Framework 3.5、4.8 | 目录 | 5028858 |
| .NET Framework 3.5、4.8.1 | 目录 | 5028852 |
| Azure Stack HCI 版本 22H2 | 5028935 | |
| .NET Framework 3.5、4.8 | 目录 | 5028858 |
| Azure Stack HCI 版本 21H2 | 5028943 | |
| .NET Framework 3.5、4.8 | 目录 | 5028858 |
| Windows 10 版本 22H2 | 5028937 | |
| .NET Framework 3.5、4.8 | 目录 | 5028853 |
| .NET Framework 3.5、4.8.1 | 目录 | 5028849 |
| Windows 10 版本 21H2 | 5028944 | |
| .NET Framework 3.5、4.8 | 目录 | 5028853 |
| .NET Framework 3.5、4.8.1 | 目录 | 5028849 |
| Windows 10 1809 (2018 年 10 月更新) 和 2019 Windows Server | 5028936 | |
| .NET Framework 3.5、4.7.2 | 目录 | 5028862 |
| .NET Framework 3.5、4.8 | 目录 | 5028855 |
| Windows 10 1607 (周年更新) 和Windows Server 2016 | ||
| .NET Framework 3.5、4.6.2、4.7、4.7.1、4.7.2 | 目录 | 5028169 |
| .NET Framework 4.8 | 目录 | 5028854 |
| Windows 10 1507 | ||
| .NET Framework 3.5、4.6、4.6.2 | 目录 | 5028186 |
| Windows Embedded 8.1 和 Windows Server 2012 R2 | 5028941 | |
| .NET Framework 3.5 | 目录 | 5028872 |
| .NET Framework 4.6.2、4.7、4.7.1、4.7.2 | 目录 | 5028864 |
| .NET Framework 4.8 | 目录 | 5028859 |
| Windows Embedded 8 和 Windows Server 2012 | 5028940 | |
| .NET Framework 3.5 | 目录 | 5028869 |
| .NET Framework 4.6.2、4.7、4.7.1、4.7.2 | 目录 | 5028863 |
| .NET Framework 4.8 | 目录 | 5028857 |
| Windows Embedded 7 Standard 和 Windows Server 2008 R2 SP1 | 5028939 | |
| .NET Framework 3.5.1 | 目录 | 5028871 |
| .NET Framework 4.6.2、4.7、4.7.1、4.7.2 | 目录 | 5028865 |
| .NET Framework 4.8 | 目录 | 5028860 |
| Windows Server 2008 SP2 | 5028942 | |
| .NET Framework 2.0、3.0 | 目录 | 5028870 |
| .NET Framework 4.6.2 | 目录 | 5028865 |
受影响的更新
以下 .NET Framework 和 .NET 版本受到影响:
- 安装 2022 年 6 月 13 日安全更新时的 .NET Framework 4.6.2、4.7、4.7.1、4.7.2。
- 安装 2022 年 6 月 13 日安全更新时的 .NET Framework 4.8。
- 安装 2022 年 6 月 13 日安全更新时的 .NET Framework 4.8.1。
- .NET 6.0.18。
- .NET 7.0.7。
常见问题解答 (FAQ)
此更改是何时引入的?
此行为更改是在 2022 年 6 月 13 日的 .NET 和 .NET Framework 安全更新中引入的。
是否有必要安装此新更新?
仅当应用程序遇到本文顶部“症状”标题中描述的问题时,才需要安装此新更新。 如果未遇到此问题,则无需安装此更新。
此新更新是否会替换 2023 年 6 月 13 日的 .NET Framework 更新?
不。 如果使用 .NET Framework,应先安装 2023 年 6 月 13 日汇总或仅安全更新,然后再安装新的 2023 年 6 月 22 日更新。
此新更新是否替换 .NET 6.0.18 或 .NET 7.0.7?
可以。 作为此更新的一部分,我们还将发布 .NET 6.0.19 和 .NET 7.0.8,这两个版本都可以从 https://get.dot.net/ 下载。 这些版本旨在替换 2023 年 6 月 13 日发布的 .NET 6.0.18 和 .NET 7.0.7。
.NET 6.0.19 / 7.0.8 和 .NET 6.0.18 / 7.0.7 之间的唯一区别是上面提到的兼容性修复。 除了 .NET 6.0.18 / 7.0.7 中已发布的内容之外,.NET 6.0.19 / 7.0.8 不包含任何其他安全修补程序。
有关保护和安全的信息
- 保护自己的上网安全:Windows 安全支持
- 了解如何防范网络威胁:Microsoft 安全