Compartir a través de


Advertencia de NuGet NU3043

Valor no válido para la opción --certificate-fingerprint en el comando dotnet nuget sign o la opción CertificateFingerprint en el comando NuGet.exe sign. El valor debe ser una huella digital de certificado SHA-256, SHA-384 o SHA-512 (en hexadecimal).

Esta advertencia se promoverá a un error en torno al periodo de tiempo de .NET 10.

Problema

A partir de .NET 9 y NuGet.exe 6.12, se genera la advertencia NU3043 cuando se pasa una huella digital de certificado SHA-1 a los comandos de firma. SHA-1 se considera insegura y ya no se debe usar.

Solución

Para resolver esta advertencia, asegúrese de proporcionar una huella digital de certificado SHA-256, SHA-384 o SHA-512 válida (en hexadecimal) para la opción --certificate-fingerprint en el comando dotnet nuget sign o la opción CertificateFingerprint en el comando NuGet.exe sign.

Los clientes pueden usar el siguiente script de PowerShell para calcular hashes de familia SHA-2 para certificados. Para usar el script, los clientes deben guardar el certificado en una carpeta 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()
}