共用方式為


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 signdotnet 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()
}