Avviso NuGet NU3043
Valore non valido per
--certificate-fingerprint
l'opzione neldotnet nuget sign
comando o nell'opzioneCertificateFingerprint
nelNuGet.exe sign
comando . Il valore deve essere un'impronta digitale del certificato SHA-256, SHA-384 o SHA-512 (in esadecimale).
Questo avviso verrà alzato di livello a un errore intorno all'intervallo di tempo di .NET 10.
Problema
A partire da .NET 9 e NuGet.exe 6.12, viene generato un avviso NU3043 quando viene passata un'impronta digitale del certificato SHA-1 ai comandi di firma. SHA-1 è considerato non sicuro e non deve più essere usato.
Soluzione
Per risolvere questo avviso, assicurarsi di fornire un'impronta digitale del certificato SHA-256, SHA-384 o SHA-512 (in esadecimale) valida per l'opzione --certificate-fingerprint
nel dotnet nuget sign
comando o nell'opzione CertificateFingerprint
nel NuGet.exe sign
comando.
I clienti possono usare lo script di PowerShell seguente per calcolare gli hash della famiglia SHA-2 per i certificati. Per usare lo script, i clienti devono salvare il certificato in una cartella locale.
$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()
}