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


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

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

Внимание

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

Внимание

Интерфейс командной строки подписи поддерживает 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

Description

Sign CLI — это средство Dotnet, которое рекурсивно подписывает файлы и контейнеры с помощью сертификата и частного. Сертификат и закрытый ключ можно получить из файла (PFX, P7B, CER) или из сертификата, установленного в хранилище сертификатов, указав SHA-256SHA-384SHA-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"