знак dotnet nuget

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