KB5028608 執行.NET Framework導入 X.509 憑證方式的變更

注意

發行日期:
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 憑證的問題。

徵兆

當使用 X509CertificateX509Certificate2X509Certificate2Collection 類別匯入包含私鑰的 PKCS#12 blob 時,呼叫的應用程式可能會觀察到以下例外。

  • System.Security.Cryptography.CryptographicException: PKCS12 (PFX) 若未提供密碼,已超過最大允許迭代次數。 更多資訊請參見 https://go.microsoft.com/fwlink/?linkid=2233907。

此故障影響了未加密碼匯出的 PKCS#12 blobs(例如經由 X509Certificate.Export(X509ContentType.Pfx)])。 失效可能發生於非確定性狀態。

因應措施

Microsoft 已釋出針對 .NET Framework 和 .NET 的更新安裝程式來解決這個問題。 這些安裝程式可以套用到受影響的機器上,不論該機器是否已經套用了 2023 年 6 月 13 日的原始 .NET Framework 和 .NET 安全更新。

重要

  • 如果您之前使用 KB5025823 變更 .NET 應用程式匯入 X.509 憑證 的方式所說明的登錄檔交換器來繞過此問題,請在安裝新補丁前移除這些登錄檔交換器。 從升高的命令提示字元執行以下兩個指令,移除登錄檔交換器。
  • reg delete "HKLM\Software\Microsoft\.NETFramework" /v Pkcs12UnspecifiedPasswordIterationLimit /reg:32
  • reg 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 Update 目錄匯入更新

如果您已使用此問題的任何解決方法或緩和措施,則不再需要它們,建議您將它們移除。 要移除 workaround ,請檢視已套用的 workaround 或替代替代方案作為說明。

產品版本 更新
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 Update、Windows Server Update Services 及 Microsoft Update 目錄取得。

註:依賴 Windows Update 及 Windows Server Update Services 的客戶,將自動收到 .NET Framework 版本專屬的更新。 進階系統管理員也可直接使用以下 Microsoft Update 目錄下載連結,取得 .NET Framework 專屬更新。 在套用這些更新前,請務必仔細檢視 .NET Framework 版本適用性,確保只在適用更新的系統安裝更新。

如果您已使用此問題的任何解決方法或緩和措施,則不再需要它們,建議您將它們移除。 要移除 workaround ,請檢視已套用的 workaround 或替代替代方案作為說明。

產品版本 更新
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 版本受影響:

  • .NET Framework 4.6.2、4.7、4.7.1、4.7.2,安裝於 2022 年 6 月 13 日的安全更新時。
  • 安裝於 2022 年 6 月 13 日的安全更新時,安裝了 .NET Framework 4.8。
  • .NET Framework 4.8.1,即 2022 年 6 月 13 日的安全更新安裝時。
  • .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.19 / 7.0.8 不包含任何超出 .NET 6.0.18 / 7.0.7 已發布內容的額外安全修補。

有關保護和安全性的資訊