Udostępnij za pośrednictwem


Ostrzeżenie narzędzia NuGet NU3043

Nieprawidłowa wartość --certificate-fingerprint opcji w poleceniu dotnet nuget sign lub CertificateFingerprint opcji w poleceniu NuGet.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()
}