Compartilhar via


Referência da CLI de assinatura para pacotes VSIX

sign – ferramenta Dotnet usada para assinar arquivos e contêineres usando certificados PFX, CER ou P7B no disco ou no WCM (Gerenciador de Certificados do Windows), CSP (Provedores de Serviços Criptográficos) ou Azure Key Vault.

Importante

A CLI de sinal só dá suporte a SHA-256, SHA-384e SHA-512 como algoritmos de impressão digital válidos. Você pode usar o PowerShell para obter impressões digitais usando: Get-FileHash -Algorithm SHA256 <path to .cer file> | Format-Table -AutoSize

Importante

A CLI de sinal só dá suporte a algoritmos de RSA, portanto, usar ECDSA para gerar sua impressão digital falhará na validação da assinatura durante a instalação. Isso não bloqueia a instalação, mas um aviso de "assinatura inválida" será exibido na janela do Instalador VSIX durante a instalação.

Sinopse

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

Descrição

Sign CLI é uma ferramenta Dotnet que assina recursivamente arquivos e contêineres com um certificado e um privado. O certificado e a chave privada podem ser obtidos de um arquivo (PFX, P7B, CER) ou de um certificado instalado em um repositório de certificados fornecendo uma impressão digital SHA-256, SHA-384ou SHA-512. As chaves USB podem ser acessadas usando um CSP ( Provedor de Serviços Criptográficos) implementado pelo fabricante e acessado do repositório de certificados.

Instalação

Instalar a CLI do Sign globalmente usando dotnet tool install sign --prerelease --global

Instalação offline da CLI de sinal

Para ambientes isolados, você pode baixar um pacote NuGet da CLI de Sinal e instalá-lo usando:

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

Argumentos

  • VSIX-paths(s)

    Especifica os caminhos para o pacote VSIX a ser assinado.

Opções

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

    Arquivo PFX, P7B ou CER que contém um certificado e, potencialmente, uma chave privada.

  • -p|--password <PASSWORD>

    Senha opcional para o arquivo de certificado.

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

    Impressão digital SHA-256, SHA-384 ou SHA-512 usada para identificar um certificado antes da assinatura.

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

    Provedor de Serviços Criptográficos que contém uma chave privada.

    Nota

    Você pode ver todos os CSPs disponíveis executando certutil -csplist, em que os CSPs herdados especificam um "Tipo de Provedor" e provedores de CNG geralmente têm "Provedor de Armazenamento de Chaves" em seus nomes. certutil -csptest "<provider name>" fornece mais informações sobre provedores específicos.

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

    Nome do contêiner de chave privada.

    Nota

    Você pode encontrar todas as chaves armazenadas em um CSP executando certutil -csp <Provider Name> -key.

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

    Use um contêiner de chave privada no nível do computador em vez do contêiner de nível de usuário padrão.

  • -d|--description <DESCRIPTION>

    Descrição do certificado de assinatura.

  • -u|--descriptionUrl <URL>

    Url de descrição do certificado de assinatura.

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

    Digere o algoritmo com o qual o arquivo será hash.

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

    URL do servidor de carimbo de data/hora RFC 3161. [padrão: http://timestamp.acs.microsoft.com/]

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

    Especifica a URL do servidor de carimbo de data/hora RFC 3161.

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

    Usado com -tr alternar para solicitar um algoritmo digest usado pelo servidor de carimbo de data/hora RFC 3161.

  • -o|--output <PATH>

    O arquivo de saída ou a pasta se vários arquivos forem especificados. Se omitida, a entrada será substituída.

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

    Diretório base para arquivos para substituir o diretório de trabalho.

  • --f|--force

    Substituirá uma assinatura se ela existir.

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

    Simultaneidade máxima (o padrão é 4)

  • -fl | --filelist <PATH>

    Caminho para o arquivo que contém caminhos de arquivos a serem assinados ou excluídos da assinatura dentro do contêiner.

  • -?|-h|--help

    Imprime uma descrição de como usar o comando.

  • -i|--interactive

    Solicite a entrada do usuário, o que é necessário em alguns cenários, como ao usar uma chave protegida pelo usuário, em que uma senha deve ser inserida pelo usuário.

Exemplos

  • Assine contoso.vsix com um certificado importado para o repositório de certificados do usuário:

    sign code certificate-store contoso.vsix -cfp 24D589...FB9523B36E -d "Constoso VSIX Signature" -u "http://www.contoso.com"
    
  • Assine contoso.vsix com o certificado cert.pfx (não protegido por senha) usando uma impressão digital 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"
    
  • Assine contoso.vsix com o certificado cert.pfx (protegido por senha):

    sign code certificate-store contoso.vsix -cfp 24D589...FB9523B36E -cf cert.pfx -p <password> -d "Constoso VSIX Signature" -u "http://www.contoso.com"
    
  • Assinar vários pacotes VSIX – contoso.vsix e todos os arquivos .vsix no diretório especificado com certificado cert.pfx (não protegido por senha):

    sign code certificate-store *.vsix -cfp 24D589...FB9523B36E -cf cert.pfx -d "Constoso VSIX Signature" -u "http://www.contoso.com"
    
  • Assine contoso.vsix com um certificado armazenado em uma unidade USB segura.

    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"
    
  • Assine contoso.vsix com um certificado armazenado em uma unidade USB segura e acessado no repositório de certificados do computador ( opção-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"
    

    Nota

    Quando -k opção não é fornecida, a ferramenta verifica todos os contêineres no CSP fornecido para obter um certificado de impressão digital SHA correspondente.

  • Assine contoso.vsix com um certificado armazenado em uma unidade USB segura especificando o algoritmo de resumo de arquivo (-fd), o servidor de carimbo de data/hora (-t) e um caminho de saída personalizado (-o) para o VSIX assinado.

    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"