Поделиться через


Справочник по интерфейсу командной строки для пакетов VSIX

sign — средство Dotnet, используемое для подписывания файлов и контейнеров с помощью сертификатов PFX, CER или P7B на диске или из диспетчера сертификатов Windows (WCM), поставщиков криптографических служб (CSP) или Azure Key Vault.

Важный

Sign CLI поддерживает только SHA-256, SHA-384и SHA-512 в качестве допустимых алгоритмов отпечатков пальцев. PowerShell можно использовать для получения отпечатков пальцев с помощью: Get-FileHash -Algorithm SHA256 <path to .cer file> | Format-Table -AutoSize

Важный

Sign CLI поддерживает только алгоритмы RSA, поэтому использование ECDSA для создания отпечатка пальца завершится ошибкой проверки подписи во время установки. Это не блокирует установку, но предупреждения "Недопустимая подпись" будут отображаться в окне установщика VSIX во время установки.

Синопсис

sign code certificate-store [<PATH(s)>]
    [-cf|--certificate-file <PATH>]
    [-p|--password <PASSWORD>]
    [-cfp|--certificate-fingerprint <SHA>]
    [-csp|--crypto-service-provider <CSPNAME>]
    [-k|--key-container <HASHALGORITHM>]
    [-km|--use-machine-key-container]
    [-d|--description <DESCRIPTION>]
    [-u|--descriptionUrl <URL>]
    [-fd|--file-digest <DIGEST>]
    [-t|--timestamp-url <URL>]
    [-tr|--timestamp-rfc3161 <URL>]
    [-td|--timestamp-digest <DIGEST>]
    [-o|--output <PATH>]
    [-b|--base-directory <wORKINGDIRECTORY>]
    [-f|--force]
    [-m|--max-concurrency <MAXCONCURRENCY>]
    [-fl|--filelist <FILELISTPATH>]
    [-i]|--interactive

sign code certificate-store -h|--help

Описание

Sign CLI — это средство Dotnet, которое рекурсивно подписывает файлы и контейнеры с помощью сертификата и частного. Сертификат и закрытый ключ можно получить из файла (PFX, P7B, CER) или из сертификата, установленного в хранилище сертификатов, указав SHA-256, SHA-384или SHA-512 отпечатка пальцев. Доступ к USB-ключам можно получить с помощью поставщика криптографических служб (CSP), реализованного производителем и доступом из хранилища сертификатов.

Установка

Глобальное использование интерфейса командной строки для подписывания с помощью dotnet tool install sign --prerelease --global

Автономная установка интерфейса командной строки для входа

Для изолированных сред можно скачать пакет NuGet для интерфейса командной строки для подписи и установить его с помощью:

dotnet tool install --global --add-source <path-to-folder> <tool-name> --version <version>

Аргументы

  • VSIX-paths(s)

    Указывает пути к пакету VSIX, который должен быть подписан.

Параметры

  • -cf|--certificate-file <PATH>

    PFX, P7B или CER-файл, содержащий сертификат и потенциально закрытый ключ.

  • -p|--password <PASSWORD>

    Необязательный пароль для файла сертификата.

  • -cfp|--certificate-fingerprint <SHA>

    ОТПЕЧАТКИ SHA-256, SHA-384 или SHA-512, используемые для идентификации сертификата перед подписью.

  • -csp|--crypto-service-provider <CSP NAME>

    Поставщик служб шифрования, содержащий закрытый ключ.

    Заметка

    Вы можете увидеть все доступные поставщики услуг, выполнив certutil -csplist, где устаревшие поставщики поставщиков указывают тип поставщика и поставщики CNG обычно имеют "Поставщик хранилища ключей" в их именах. certutil -csptest "<provider name>" предоставляет дополнительные сведения о конкретных поставщиках.

  • -k|--key-container <CONTAINER NAME>]

    Имя контейнера закрытого ключа.

    Заметка

    Все ключи, хранящиеся в CSP, можно найти, выполнив certutil -csp <Provider Name> -key.

  • -km|--use-machine-key-container]

    Используйте контейнер закрытого ключа на уровне компьютера вместо контейнера уровня пользователя по умолчанию.

  • -d|--description <DESCRIPTION>

    Описание сертификата подписи.

  • -u|--descriptionUrl <URL>

    URL-адрес описания сертификата подписи.

  • -fd | --file-digest <DIGEST>

    Алгоритм дайджеста для хэширования файла.

  • -t|--timestamp-url <URL>

    URL-адрес сервера метки времени RFC 3161. [по умолчанию: http://timestamp.acs.microsoft.com/]

  • -tr | --timestamp-rfc3161 <URL>

    Указывает URL-адрес сервера метки времени RFC 3161.

  • -td|--timestamp-digest <DIGEST>

    Используется с параметром -tr для запроса алгоритма дайджеста, используемого сервером метки времени RFC 3161.

  • -o|--output <PATH>

    Выходной файл или папка, если указаны несколько файлов. Если опущено, входные данные перезаписываются.

  • -b|--base-directory <PATH>

    Базовый каталог для файлов для переопределения рабочего каталога.

  • --f|--force

    Перезаписывает подпись, если она существует.

  • -m|--max-concurrency <MAXCONCURRENCY>

    Максимальная параллелизм (по умолчанию — 4)

  • -fl | --filelist <PATH>

    Путь к файлу, содержашем пути к файлам для подписывания или исключения из подписывания в контейнере.

  • -?|-h|--help

    Выводит описание использования команды.

  • -i|--interactive

    Запрос ввода пользователем, который требуется в некоторых сценариях, например при использовании ключа, защищенного пользователем, где пароль должен быть введен пользователем.

Примеры

  • Подписыв contoso.vsix с сертификатом, импортированным в хранилище сертификатов пользователя:

    sign code certificate-store contoso.vsix -cfp 24D589...FB9523B36E -d "Constoso VSIX Signature" -u "http://www.contoso.com"
    
  • Подписыв contoso.vsix с помощью сертификата cert.pfx (не защищенного паролем) с помощью отпечатка SHA-512:

    sign code certificate-store contoso.vsix -cfp A87A6F...894559B981 -cfpa sha512 -cf D:\certificates\cert.pfx -d "Constoso VSIX Signature" -u "http://www.contoso.com"
    
  • Подписыв contoso.vsix с помощью сертификата cert.pfx (защищенный паролем):

    sign code certificate-store contoso.vsix -cfp 24D589...FB9523B36E -cf cert.pfx -p <password> -d "Constoso VSIX Signature" -u "http://www.contoso.com"
    
  • Подписыв несколько пакетов VSIX— contoso.vsix и все VSIX-файлы в каталоге, указанные с помощью сертификата cert.pfx (не защищенный паролем):

    sign code certificate-store *.vsix -cfp 24D589...FB9523B36E -cf cert.pfx -d "Constoso VSIX Signature" -u "http://www.contoso.com"
    
  • Подписывай contoso.vsix сертификатом, хранящимся на защищенном USB-диске.

    sign code certificate-store contoso.vsix -cfp 24D589...FB9523B36E -csp "Microsoft Software Key Storage Provider" -k "VsixSigning 0B2D249223B36D00A7DF07FB95E24D58" -d "Constoso VSIX Signature" -u "http://www.contoso.com"
    
  • Подписывайте contoso.vsix с помощью сертификата, хранящегося на защищенном USB-диске и доступе к хранилищу сертификатов компьютера (параметр-km).

    sign code certificate-store contoso.vsix -cfp 24D589...FB9523B36E -csp "Microsoft Software Key Storage Provider" -k "VsixSigning 0B2D249223B36D00A7DF07FB95E24D58" -km -d "Constoso VSIX Signature" -u "http://www.contoso.com"
    

    Заметка

    Если параметр -k не указан, средство проверяет все контейнеры в предоставленном CSP для соответствующего сертификата отпечатка SHA.

  • Подписывание contoso.vsix с помощью сертификата, хранящегося на защищенном USB-диске, определяющего алгоритм дайджеста файлов (-fd), сервер метки времени (-t), а также пользовательский путь вывода (-o) для подписанного VSIX.

    sign code certificate-store contoso.vsix -cfp 24D589...FB9523B36E -csp "Microsoft Software Key Storage Provider" -k "VsixSigning 0B2D249223B36D00A7DF07FB95E24D58" -d "Constoso VSIX Signature" -u "http://www.contoso.com" -t "http://timestamp.acs.microsoft.com/" -fd sha256 -o "ContosoSigned.vsix"