Partager via


Avertissement NuGet NU3043

Valeur non valable pour l’option --certificate-fingerprint dans la commande dotnet nuget sign ou l’option CertificateFingerprint dans la commande NuGet.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()
}