Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Valore non valido per
--certificate-fingerprintl'opzione neldotnet nuget signcomando o nell'opzioneCertificateFingerprintnelNuGet.exe signcomando . Il valore deve essere un'impronta digitale del certificato SHA-256, SHA-384 o SHA-512 (in esadecimale).
Questo avviso viene alzato di livello a un errore in .NET 10 SDK e verrà promosso a un errore in NuGet.exe intorno al rilascio 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.
È possibile usare gli script seguenti per calcolare gli hash della famiglia SHA-2 per i certificati.
PowerShell
Per usare lo script, è necessario 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()
}
OpenSSL (Linux/macOS)
Se il certificato è in formato PEM o CRT:
openssl x509 -in path/to/certificate -outform der | sha256sum
Se il certificato è già in formato DER:
sha256sum path/to/certificate
Suggerimento
Per SHA-384 o SHA-512, sostituire sha256sum con sha384sum o sha512sum in base alle esigenze.