Поделиться через


Предупреждение NuGet NU3043

Недопустимое значение параметра --certificate-fingerprint в команде dotnet nuget sign или CertificateFingerprint параметре в команде NuGet.exe sign . Значение должно быть отпечатком сертификата SHA-256, SHA-384 или SHA-512 (шестнадцатеричным).

Это предупреждение будет повышено до ошибки в интервале времени .NET 10.

Проблема

Начиная с .NET 9 и NuGet.exe 6.12, предупреждение NU3043 возникает при передаче отпечатка сертификата SHA-1 в команды подписи. SHA-1 считается небезопасным и больше не должен использоваться.

Решение

Чтобы устранить это предупреждение, убедитесь, что вы предоставили допустимый отпечаток сертификата SHA-256, SHA-384 или SHA-512 (в шестнадцатеричном) для --certificate-fingerprint параметра dotnet nuget sign в команде или CertificateFingerprint параметре в команде NuGet.exe sign .

Клиенты могут использовать следующий сценарий PowerShell для вычисления хэшей семейства SHA-2 для сертификатов. Чтобы использовать скрипт, клиентам необходимо сохранить сертификат в локальную папку.

$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()
}