Bagikan melalui


NuGet Peringatan NU3043

Nilai tidak valid untuk --certificate-fingerprint opsi dalam dotnet nuget sign perintah atau CertificateFingerprint opsi dalam NuGet.exe sign perintah. Nilainya harus berupa sidik jari sertifikat SHA-256, SHA-384, atau SHA-512 (dalam heksadesimal).

Peringatan ini dipromosikan ke kesalahan dalam .NET 10 SDK, dan akan dipromosikan ke kesalahan dalam NuGet.exe sekitar rilis .NET 10.

Masalah

Dimulai dengan .NET 9 dan NuGet.exe 6.12, peringatan NU3043 dinaikkan ketika sidik jari sertifikat SHA-1 diteruskan ke perintah tanda. SHA-1 dianggap tidak aman dan tidak boleh lagi digunakan.

Solusi

Untuk mengatasi peringatan ini, pastikan Anda memberikan sidik jari sertifikat SHA-256, SHA-384, atau SHA-512 yang valid (dalam heksadesimal) untuk --certificate-fingerprint opsi dalam dotnet nuget sign perintah atau CertificateFingerprint opsi dalam NuGet.exe sign perintah.

Anda dapat menggunakan skrip berikut untuk menghitung hash keluarga SHA-2 untuk sertifikat.

PowerShell

Untuk menggunakan skrip, Anda perlu menyimpan sertifikat ke folder lokal.

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

OpenSSL (Linux/macOS)

Jika sertifikat dalam format PEM atau CRT:

openssl x509 -in path/to/certificate -outform der | sha256sum

Jika sertifikat sudah dalam format DER:

sha256sum path/to/certificate

Petunjuk / Saran

Untuk SHA-384 atau SHA-512, ganti sha256sum dengan sha384sum atau sha512sum sesuai kebutuhan.