Sdílet prostřednictvím


Upozornění NuGet NU3043

Neplatná hodnota pro --certificate-fingerprint možnost v dotnet nuget sign příkazu nebo CertificateFingerprint možnost v NuGet.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()
}