Справочник по интерфейсу командной строки для пакетов 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"