Delen via


NuGet-waarschuwing NU3043

Ongeldige waarde voor --certificate-fingerprint de optie in de dotnet nuget sign opdracht of de CertificateFingerprint optie in de NuGet.exe sign opdracht. De waarde moet een SHA-256-, SHA-384- of SHA-512-certificaatvingerafdruk zijn (in hexadecimaal).

Deze waarschuwing wordt gepromoveerd naar een fout in de .NET 10 SDK en wordt gepromoot naar een fout in NuGet.exe rond de release van .NET 10.

Probleem

Vanaf .NET 9 en NuGet.exe 6.12 wordt de NU3043-waarschuwing weergegeven wanneer een SHA-1-certificaatvingerafdruk wordt doorgegeven aan de tekenopdrachten. SHA-1 wordt als onveilig beschouwd en mag niet meer worden gebruikt.

Solution

U kunt deze waarschuwing oplossen door ervoor te zorgen dat u een geldige SHA-256-, SHA-384- of SHA-512-certificaatvingerafdruk (in hexadecimaal) opgeeft voor de --certificate-fingerprint optie in de dotnet nuget sign opdracht of de CertificateFingerprint optie in de NuGet.exe sign opdracht.

U kunt de volgende scripts gebruiken om SHA-2-familie-hashes voor certificaten te berekenen.

PowerShell

Als u het script wilt gebruiken, moet u het certificaat opslaan in een lokale map.

$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)

Als het certificaat de PEM- of CRT-indeling heeft:

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

Als het certificaat al de DER-indeling heeft:

sha256sum path/to/certificate

Aanbeveling

Voor SHA-384 of SHA-512 vervangt u sha256sum door sha384sum of sha512sum indien nodig.