dotnet nuget verify

本文适用于: ✔️ .NET 5.0.100-rc.2.x SDK 及更高版本

名称

dotnet nuget verify -验证已签名的 NuGet 包。

摘要

dotnet nuget verify [<package-path(s)>]
    [--all]
    [--certificate-fingerprint <FINGERPRINT>]
    [-v|--verbosity <LEVEL>]
    [--configfile <FILE>]

dotnet nuget verify -h|--help

描述

dotnet nuget verify 命令验证已签名的 NuGet 包。

注意

此命令需要一个对代码签名和时间戳都有效的证书根存储。 此外,操作系统和 .NET SDK 的某些组合可能不支持此命令。 有关详细信息,请参阅 NuGet 签名的包验证

自变量

  • package-path(s)

    指定要验证的包的文件路径。 可以传入多个位置参数以验证多个包。

选项

  • --all

    指定应对包执行的所有可能的验证。 默认情况下,只验证 signatures

注意

此命令当前仅支持 signature 验证。

  • --certificate-fingerprint <FINGERPRINT>

    验证签名者证书是否与指定的其中一个 SHA256 指纹匹配。 可以多次提供此选项以提供多个指纹。

  • -v|--verbosity <LEVEL>

    设置命令的详细级别。 允许使用的值为 q[uiet]m[inimal]n[ormal]d[etailed]diag[nostic]。 默认值为 minimal。 有关详细信息,请参阅 LoggerVerbosity

    下表显示了针对每种详细级别显示的内容。

    q[uiet] m[inimal] n[ormal] d[etailed] diag[nostic]
    Certificate chain Information ✔️ ✔️
    Path to package being verified ✔️ ✔️ ✔️
    Hashing algorithm used for signature ✔️ ✔️ ✔️
    Author/Repository Certificate -> SHA1 hash ✔️ ✔️ ✔️
    Author/Repository Certificate -> Issued By ✔️ ✔️ ✔️
    Timestamp Certificate -> Issued By ✔️ ✔️ ✔️
    Timestamp Certificate -> SHA-256 hash ✔️ ✔️ ✔️
    Timestamp Certificate -> Validity period ✔️ ✔️ ✔️
    Timestamp Certificate -> SHA1 hash ✔️ ✔️ ✔️
    Timestamp Certificate -> Subject name ✔️ ✔️ ✔️
    Author/Repository Certificate -> Subject name ✔️ ✔️ ✔️ ✔️
    Author/Repository Certificate -> SHA-256 hash ✔️ ✔️ ✔️ ✔️
    Author/Repository Certificate -> Validity period ✔️ ✔️ ✔️ ✔️
    Author/Repository Certificate -> Service index URL (If applicable) ✔️ ✔️ ✔️ ✔️
    Package name being verified ✔️ ✔️ ✔️ ✔️
    Type of signature (author or repository) ✔️ ✔️ ✔️ ✔️

    ❌ 表示未显示的详细信息。 ✔️ 表示已显示的详细信息。

  • --configfile <FILE>

    要使用的 NuGet 配置文件 (nuget.config)。 如果指定,则只使用此文件中的设置。 如果不指定,将使用当前目录中的配置文件的层次结构。 有关详细信息,请参阅常见的 NuGet 配置

  • -?|-h|--help

    打印出有关如何使用命令的说明。

示例

  • 验证 foo.nupkg:

    dotnet nuget verify foo.nupkg
    
  • 验证多个 NuGet 包 - foo.nupkg 和指定目录中的所有 .nupkg 文件 :

    dotnet nuget verify foo.nupkg c:\mydir\*.nupkg
    
  • 验证 foo.nupkg 签名是否与指定的证书指纹匹配:

    dotnet nuget verify foo.nupkg --certificate-fingerprint CE40881FF5F0AD3E58965DA20A9F571EF1651A56933748E1BF1C99E537C4E039
    
  • 验证 foo.nupkg 签名是否与指定的其中一个证书指纹匹配:

    dotnet nuget verify foo.nupkg --certificate-fingerprint CE40881FF5F0AD3E58965DA20A9F571EF1651A56933748E1BF1C99E537C4E039 --certificate-fingerprint EC10992GG5F0AD3E58965DA20A9F571EF1651A56933748E1BF1C99E537C4E027
    
  • 仅使用指定的 nuget.config 文件中的设置(packagesourcestrustedSigners)来验证 foo.nupkg 的签名:

    dotnet nuget verify foo.nupkg --configfile ..\Settings\nuget.config