Advertencia de NuGet NU3043
Valor no válido para la opción
--certificate-fingerprint
en el comandodotnet nuget sign
o la opciónCertificateFingerprint
en el comandoNuGet.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()
}