Ostrzeżenie narzędzia NuGet NU3043
Nieprawidłowa wartość
--certificate-fingerprint
opcji w poleceniudotnet nuget sign
lubCertificateFingerprint
opcji w poleceniuNuGet.exe sign
. Wartość musi być odciskiem palca certyfikatu SHA-256, SHA-384 lub SHA-512 (w szesnastkowym).
To ostrzeżenie będzie promowane do błędu wokół przedziału czasu platformy .NET 10.
Problem
Począwszy od platformy .NET 9 i NuGet.exe 6.12, ostrzeżenie NU3043 jest zgłaszane, gdy odcisk palca certyfikatu SHA-1 jest przekazywany do poleceń podpisywania. Algorytm SHA-1 jest uznawany za niepewny i nie powinien już być używany.
Rozwiązanie
Aby rozwiązać to ostrzeżenie, upewnij się, że podaj prawidłowy algorytm SHA-256, SHA-384 lub odcisk palca certyfikatu SHA-512 (w szesnastkowym) dla --certificate-fingerprint
opcji w dotnet nuget sign
poleceniu lub CertificateFingerprint
opcji w poleceniu NuGet.exe sign
.
Klienci mogą użyć następującego skryptu programu PowerShell do obliczenia skrótów rodziny SHA-2 dla certyfikatów. Aby użyć skryptu, klienci muszą zapisać certyfikat w folderze lokalnym.
$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()
}