Condividi tramite


Avviso NuGet NU3043

Valore non valido per --certificate-fingerprint l'opzione nel dotnet nuget sign comando o nell'opzione CertificateFingerprint nel NuGet.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()
}