Udostępnij za pomocą


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 jest promowane do błędu w zestawie .NET 10 SDK i zostanie podniesione do błędu w NuGet.exe około wydania 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 .

Poniższe skrypty umożliwiają obliczanie skrótów rodziny SHA-2 dla certyfikatów.

PowerShell

Aby użyć skryptu, należy 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()
}

OpenSSL (Linux/macOS)

Jeśli certyfikat jest w formacie PEM lub CRT:

openssl x509 -in path/to/certificate -outform der | sha256sum

Jeśli certyfikat jest już w formacie DER:

sha256sum path/to/certificate

Wskazówka

W przypadku algorytmu SHA-384 lub SHA-512 zastąp wartość sha256sum sha384sum lub sha512sum zgodnie z potrzebami.