dotnet nuget sign

Эта статья относится к: ✔️ пакету 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>

    Отпечаток 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-1 в хранилище сертификатов по умолчанию (CurrentUser\My):

    dotnet nuget sign foo.nupkg --certificate-fingerprint 89967D1DD995010B6C66AE24FF8E66885E6E03A8 --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-1 в хранилище сертификатов CurrentUser\Root:

    dotnet nuget sign foo.nupkg --certificate-fingerprint 89967D1DD995010B6C66AE24FF8E66885E6E03A8 --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