Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Эта статья относится к: ✔️ пакету SDK для .NET 6 и более поздних версий
Имя.
dotnet nuget sign. Подписывает все пакеты NuGet, соответствующие первому аргументу, с помощью сертификата.
Краткие сведения
dotnet nuget sign [<package-path(s)>]
[--certificate-path <PATH>]
[--certificate-store-name <STORENAME>]
[--certificate-store-location <STORELOCATION>]
[--certificate-subject-name <SUBJECTNAME>]
[--certificate-fingerprint <FINGERPRINT>]
[--certificate-password <PASSWORD>]
[--hash-algorithm <HASHALGORITHM>]
[-o|--output <OUTPUT DIRECTORY>]
[--overwrite]
[--timestamp-hash-algorithm <HASHALGORITHM>]
[--timestamper <TIMESTAMPINGSERVER>]
[-v|--verbosity <LEVEL>]
dotnet nuget sign -h|--help
Description
Команда dotnet nuget sign подписывает все пакеты, соответствующие первому аргументу, с помощью сертификата. Сертификат с закрытым ключом можно получить из файла или сертификата, установленного в хранилище сертификатов, указав имя субъекта или отпечаток SHA-1.
Примечание.
Для этой команды требуется корневое хранилище сертификатов, допустимое как для подписывания кода, так и метки времени. Кроме того, эта команда может не поддерживаться в некоторых сочетаниях операционной системы и пакета SDK для .NET. Дополнительные сведения см. в статье о проверке подписанного пакета NuGet.
Аргументы
package-path(s)Указывает путь к файлу подписываемого пакета. Для подписания нескольких пакетов можно передать несколько аргументов.
Параметры
--certificate-path <PATH>Указывает путь к файлу сертификата, который должен использоваться при подписании пакета.
Примечание.
В настоящее время этот параметр поддерживает только файлы
PKCS12 (PFX), содержащие закрытый ключ сертификата.--certificate-store-name <STORENAME>Указывает имя хранилища сертификатов X.509, которое будет использоваться для поиска сертификата. По умолчанию имеет значение "My", хранилище сертификатов X.509 для личных сертификатов. Этот параметр следует использовать при указании сертификата с помощью параметров
--certificate-subject-nameили--certificate-fingerprint.--certificate-store-location <STORELOCATION>Указывает имя хранилища сертификатов X.509, которое будет использоваться для поиска сертификата. По умолчанию имеет значение "CurrentUser", хранилище сертификатов X.509, используемое текущим пользователем. Этот параметр следует использовать при указании сертификата с помощью параметров
--certificate-subject-nameили--certificate-fingerprint.--certificate-subject-name <SUBJECTNAME>Указывает имя субъекта сертификата, используемое для поиска сертификата в локальном хранилище сертификатов. Поиск — это сравнение строк без учета регистра с использованием предоставленного значения, которое находит все сертификаты с именем субъекта, содержащим эту строку, независимо от других значений субъекта. Хранилище сертификатов можно указать с помощью параметров
--certificate-store-nameи--certificate-store-location.Примечание.
Сейчас этот параметр поддерживает только один соответствующий сертификат в результате. Если в результате отображается несколько сертификатов или ни одного, команда подписывания завершится ошибкой.
--certificate-fingerprint <FINGERPRINT>Указывает отпечаток сертификата, используемый для поиска локального хранилища сертификатов для сертификата.
Начиная с .NET 9 этот параметр можно использовать для указания отпечатка пальца сертификата SHA-1, SHA-256, SHA-384 или SHA-512. Однако предупреждение возникает при использовании отпечатка сертификата SHA-1,
NU3043так как он больше не считается безопасным. В .NET 10 и более поздних версиях предупреждение повышается до ошибки. Поддерживаются только отпечатки пальцев семейства SHA-2 (SHA-256, SHA-384 и SHA-512).Все pre-.NET 9 версий пакета SDK для .NET продолжают принимать только отпечатки сертификата SHA-1.
--certificate-password <PASSWORD>Указывает пароль сертификата при необходимости. Если сертификат защищен паролем, но пароль не указан, команда подписания завершится ошибкой.
Примечание.
Команда
signподдерживает только неинтерактивный режим. В среде выполнения не будет запроса на пароль.--hash-algorithm <HASHALGORITHM>Хэш-алгоритм, используемый для подписания пакета. По умолчанию используется значение SHA256. Возможные значения: SHA256, SHA384 и SHA512.
-o|--outputУказывает каталог, в котором должен быть сохранен подписанный пакет. Если этот параметр не указан, по умолчанию исходный пакет перезаписывается подписанным пакетом.
--overwriteУказывает, что текущая сигнатура должна быть перезаписана. По умолчанию команда завершится ошибкой, если у пакета уже есть сигнатура.
--timestamp-hash-algorithm <HASHALGORITHM>Хэш-алгоритм, используемый сервером меток времени RFC 3161. По умолчанию используется значение SHA256.
--timestamper <TIMESTAMPINGSERVER>URL-адрес сервера меток времени RFC 3161.
-
-v|--verbosity <LEVEL>Задает уровень детализации команды. Допустимые значения:
q[uiet],m[inimal],n[ormal],d[etailed]иdiag[nostic]. Значение по умолчанию —minimal. Дополнительные сведения см. в разделе LoggerVerbosity. -
-?|-h|--helpВыводит описание использования команды.
Примеры
Подписание foo.nupkg сертификатом cert.pfx (не защищено паролем):
dotnet nuget sign foo.nupkg --certificate-path cert.pfxПодписание foo.nupkg сертификатом cert.pfx (защищено паролем):
dotnet nuget sign foo.nupkg --certificate-path cert.pfx --certificate-password passwordПодписывание foo.nupkg с сертификатом (защищенным паролем) соответствует указанному отпечатку SHA-256 в хранилище сертификатов по умолчанию (CurrentUser\My):
dotnet nuget sign foo.nupkg --certificate-fingerprint B2C40F2F8775D7B7EBEB76BD5A9D3A4BC3F4B8A4D8D7C5F8A4C6B3E7A9E2D5F1 --certificate-password passwordПодписание foo.nupkg сертификатом (защищенным паролем) соответствует указанному имени субъекта "Test certificate for testing signing" в хранилище сертификатов по умолчанию (CurrentUser\My):
dotnet nuget sign foo.nupkg --certificate-subject-name "Test certificate for testing signing" --certificate-password passwordПодписывание foo.nupkg с сертификатом (защищенным паролем) соответствует указанному отпечатку SHA-256 в хранилище сертификатов CurrentUser\Root:
dotnet nuget sign foo.nupkg --certificate-fingerprint B2C40F2F8775D7B7EBEB76BD5A9D3A4BC3F4B8A4D8D7C5F8A4C6B3E7A9E2D5F1 --certificate-password password --certificate-store-location CurrentUser --certificate-store-name RootПодписание нескольких пакетов NuGet (foo.nupkg и все NUPKG-файлы в указанном каталоге) сертификатом cert.pfx (не защищенным паролем):
dotnet nuget sign foo.nupkg c:\mydir\*.nupkg --certificate-path cert.pfxПодписание foo.nupkg сертификатом cert.pfx (защищенным паролем) и меткой времени с
http://timestamp.test:dotnet nuget sign foo.nupkg --certificate-path cert.pfx --certificate-password password --timestamper http://timestamp.testПодписание foo.nupkg сертификатом cert.pfx (не защищенным паролем) и сохранение подписанного пакета в указанном каталоге:
dotnet nuget sign foo.nupkg --certificate-path cert.pfx --output c:\signed\Подписание foo.nupkg сертификатом cert.pfx (не защищенным паролем) и перезапись текущей сигнатуры, если пакет уже подписан:
dotnet nuget sign foo.nupkg --certificate-path cert.pfx --overwrite