NuGet-Warnung NU3043
Ungültiger Wert für
--certificate-fingerprint
die Option imdotnet nuget sign
Befehl oder derCertificateFingerprint
Option imNuGet.exe sign
Befehl. Der Wert muss ein SHA-256-, SHA-384- oder SHA-512-Zertifikatabdruck (hexadezimal) sein.
Diese Warnung wird zu einem Fehler um den .NET 10-Zeitrahmen heraufgestuft.
Problem
Ab .NET 9 und NuGet.exe 6.12 wird die NU3043-Warnung ausgelöst, wenn ein SHA-1-Zertifikatfingerabdruck an die Signierbefehle übergeben wird. SHA-1 gilt als unsicher und sollte nicht mehr verwendet werden.
Lösung
Um diese Warnung zu beheben, stellen Sie sicher, dass Sie einen gültigen SHA-256-, SHA-384- oder SHA-512-Zertifikatabdruck (hexadezimal) für die --certificate-fingerprint
Option im dotnet nuget sign
Befehl oder die CertificateFingerprint
Option im NuGet.exe sign
Befehl angeben.
Kunden können das folgende PowerShell-Skript verwenden, um SHA-2-Familienhashes für Zertifikate zu berechnen. Um das Skript zu verwenden, müssen Kunden das Zertifikat in einem lokalen Ordner speichern.
$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()
}