명령의 옵션 또는 명령의
dotnet nuget signCertificateFingerprint옵션에 대한--certificate-fingerprint값이 잘못되었습니다NuGet.exe sign. 값은 SHA-256, SHA-384 또는 SHA-512 인증서 지문(16진수)이어야 합니다.
이 경고는 .NET 10 SDK의 오류로 승격되고 .NET 10 릴리스와 관련된 NuGet.exe 오류로 승격됩니다.
문제
.NET 9 및 NuGet.exe 6.12부터 SHA-1 인증서 지문이 서명 명령에 전달될 때 NU3043 경고가 발생합니다. SHA-1은 안전하지 않은 것으로 간주되며 더 이상 사용하지 않아야 합니다.
솔루션
이 경고를 해결하려면 명령의 옵션 또는 CertificateFingerprint 명령의 옵션 NuGet.exe signdotnet nuget sign 에 유효한 SHA-256, SHA-384 또는 SHA-512 인증서 지문(16진수)--certificate-fingerprint을 제공해야 합니다.
다음 스크립트를 사용하여 인증서에 대한 SHA-2 제품군 해시를 계산할 수 있습니다.
PowerShell
스크립트를 사용하려면 인증서를 로컬 폴더에 저장해야 합니다.
$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)
인증서가 PEM 또는 CRT 형식인 경우:
openssl x509 -in path/to/certificate -outform der | sha256sum
인증서가 이미 DER 형식인 경우:
sha256sum path/to/certificate
팁 (조언)
SHA-384 또는 SHA-512의 경우 필요에 따라 sha256sum을 sha384sum 또는 sha512sum으로 교체합니다.