Upozornění NuGet NU3043
Neplatná hodnota pro
--certificate-fingerprint
možnost vdotnet nuget sign
příkazu neboCertificateFingerprint
možnost vNuGet.exe sign
příkazu. Hodnota musí být otiskem certifikátu SHA-256, SHA-384 nebo SHA-512 (v šestnáctkové soustavě).
Toto upozornění se zvýší na chybu v časovém rámci .NET 10.
Problém
Počínaje rozhraním .NET 9 a NuGet.exe 6.12 se při předání otisku certifikátu SHA-1 do příkazů podpisu vyvolá upozornění NU3043. SHA-1 se považuje za nezabezpečené a už by se nemělo používat.
Řešení
Pokud chcete toto upozornění vyřešit, ujistěte se, že jako možnost v dotnet nuget sign
příkazu nebo CertificateFingerprint
v příkazu zadáte platný otisk certifikátu SHA-256, SHA-384 nebo SHA-512 (v šestnáctkové --certificate-fingerprint
soustavěNuGet.exe sign
).
Zákazníci můžou k výpočtu hodnot hash řady SHA-2 pro certifikáty použít následující skript PowerShellu. Aby mohli skript používat, musí zákazníci certifikát uložit do místní složky.
$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()
}