次の方法で共有


NuGet 警告 NU3043

dotnet nuget sign コマンドの --certificate-fingerprint オプションまたは NuGet.exe sign コマンドの CertificateFingerprint オプションの値が無効です。 値は、SHA-256、SHA-384、または SHA-512 証明書フィンガープリント (16 進数) である必要があります。

この警告は、.NET 10 の時間枠においてエラーに昇格されます。

問題点

.NET 9 および NuGet.exe 6.12 以降では、SHA-1 証明書フィンガープリントが署名コマンドに渡されると、NU3043 警告が発生します。 SHA-1 は安全でないと見なされるため、使用できなくなりました。

解決策

この警告を解決するには、dotnet nuget sign コマンドの --certificate-fingerprint オプションまたは NuGet.exe sign コマンドの CertificateFingerprint オプションに対して、有効な SHA-256、SHA-384、または SHA-512 証明書フィンガープリント (16 進数) を必ず指定するようにしてください。

顧客は、次の 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()
}