sign 命令 (NuGet CLI)
适用于:包创建 • 支持的版本:4.6 及以上版本
使用证书对匹配第一个参数的所有包进行签名。 通过提供使用者名称或 SHA-1 指纹,可从文件或证书存储中安装的证书获取带私钥的证书。
注意
.NET Core、Mono 或非 Windows 平台上尚不支持包签名。
使用情况
nuget sign <package(s)> [options]
其中,<package(s)>
为一个或多个 .nupkg
文件。
选项
-CertificateFingerprint
指定用于在本地证书存储中搜索证书的指纹。
从 NuGet.exe 6.12 开始,可使用此选项指定证书的 SHA-1、SHA-256、SHA-384 或 SHA-512 指纹。 但是,使用 SHA-1 证书指纹时会引发
NU3043
警告,因为它不再被视为安全。NuGet.exe 的所有先前版本仍然只接受 SHA-1 证书指纹。
-CertificatePassword
如果需要,指定证书密码。 如果证书受密码保护但未提供密码,则该命令在运行时会提示输入密码,除非已传递
-NonInteractive
选项。-CertificatePath
指定对包进行签名时要使用的证书的文件路径。
-CertificateStoreLocation
指定用于搜索证书的 x.509 证书存储的名称。 默认为“CurrentUser”,即当前用户使用的 X.509 证书存储。 当通过
-CertificateSubjectName
或-CertificateFingerprint
选项指定证书时,应使用此选项。-CertificateStoreName
指定用于搜索证书的 x.509 证书存储的名称。 默认为“My”,即个人证书的 X.509 证书存储。 当通过
-CertificateSubjectName
或-CertificateFingerprint
选项指定证书时,应使用此选项。-CertificateSubjectName
指定用于在本地证书存储中搜索证书的证书使用者名称。 该搜索是使用提供的值进行的区分大小写的字符串比较,它将查找使用者名称中包含该字符串的所有证书,且不考虑其他使用者值。 可通过
-CertificateStoreName
和-CertificateStoreLocation
选项指定证书存储。-ConfigFile
要应用的 NuGet 配置文件。 如果未指定,则使用
%AppData%\NuGet\NuGet.Config
(适用于 Windows)或是~/.nuget/NuGet/NuGet.Config
或~/.config/NuGet/NuGet.Config
(适用于 Mac/Linux)。-ForceEnglishOutput
使用固定的、基于英语的区域性强制 nuget.exe 运行。
-HashAlgorithm
用于对包进行签名的哈希算法。 默认为 SHA256。 可能的值有 SHA256、SHA384 和 SHA512。
-?|-help
显示此命令的帮助信息。
-NonInteractive
不为用户输入或确认显示提示。
-OutputDirectory
指定用于保存已签名的包的目录。 默认情况下,原始包将被已签名包覆盖。
-Overwrite
切换以指示是否应覆盖当前签名。 默认情况下,如果包已有签名,该命令将失败。
-Timestamper
RFC 3161 时间戳加盖服务器的 URL。
-TimestampHashAlgorithm
RFC 3161 时间戳服务器要使用的哈希算法。 默认为 SHA256。
-Verbosity [normal|quiet|detailed]
指定输出中显示的细节量:
normal
(默认值)、quiet
或detailed
。
示例
nuget sign MyPackage.nupkg -CertificatePath .\..\certificate.pfx -Timestamper http://timestamp.test
nuget sign .\..\MyPackage.nupkg -CertificateStoreLocation CurrentUser -CertificateStoreName My -CertificateSubjectName 'subject name' -Timestamper http://timestamp.test -OutputDirectory .\..\Signed