NuGet 警告 NU3043
命令中選項的值
--certificate-fingerprint
無效,或CertificateFingerprint
命令中的NuGet.exe sign
dotnet nuget sign
選項。 此值必須是SHA-256、SHA-384或SHA-512憑證指紋(以十六進位為單位)。
此警告將會提升為 .NET 10 時間範圍周圍的錯誤。
問題
從 .NET 9 和 NuGet.exe 6.12 開始,當 SHA-1 憑證指紋傳遞至簽署命令時,會引發 NU3043 警告。 SHA-1 被視為不安全,不應再使用。
解決方案
若要解決此警告,請確定您為命令或命令CertificateFingerprint
中的 選項NuGet.exe sign
dotnet nuget sign
提供有效的SHA-256、SHA-384或SHA-512憑證指紋(以十六進位為單位)。--certificate-fingerprint
客戶可以使用下列 PowerShell 腳本來計算憑證的 SHA-2 系列哈希。 若要使用腳本,客戶必須將憑證儲存至本機資料夾。
$certificate = [System.Security.Cryptography.X509Certificates.X509Certificate2]::new($certPath)
$stream = [System.IO.MemoryStream]::new($certificate.RawData)
Try
{
(Get-FileHash -Algorithm SHA256 $stream).Hash
}
Finally
{
$stream.Dispose()
$certificate.Dispose()
}