Avertissement NuGet NU3043
Valeur non valable pour l’option
--certificate-fingerprint
dans la commandedotnet nuget sign
ou l’optionCertificateFingerprint
dans la commandeNuGet.exe sign
. La valeur doit être une empreinte digitale SHA-256, SHA-384 ou SHA-512 de certificat (en hexadécimal).
Cet avertissement est devenu une erreur autour de la période du .NET 10.
Problème
À compter de .NET 9 et de NuGet.exe 6.12, l’avertissement NU3043 est déclenché lorsqu’une empreinte digitale SHA-1 de certificat est passée aux commandes de signature. SHA-1 n’est pas considéré comme sécurisé et ne doit plus être utilisé.
Solution
Pour résoudre cet avertissement, veillez à fournir une empreinte digitale SHA-256, SHA-384 ou SHA-512 de certificat valide (en hexadécimal) pour l’option --certificate-fingerprint
dans la commande dotnet nuget sign
ou l’option CertificateFingerprint
de la commande NuGet.exe sign
.
Les clients peuvent utiliser le script PowerShell suivant pour calculer les codes de hachage de famille SHA-2 pour les certificats. Pour utiliser le script, les clients doivent enregistrer le certificat dans un dossier local.
$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()
}