Condividi tramite


Firmare le informazioni di riferimento dell'interfaccia della riga di comando per i pacchetti VSIX

sign - Strumento Dotnet usato per firmare file e contenitori usando certificati PFX, CER o P7B su disco o da Gestione certificati Windows (WCM), Provider di servizi di crittografia (CSP) o Azure Key Vault.

Importante

L'interfaccia della riga di comando di Sign supporta SHA-256solo , SHA-384e SHA-512 come algoritmi di impronta digitale validi. È possibile usare PowerShell per ottenere le impronte digitali usando: Get-FileHash -Algorithm SHA256 <path to .cer file> | Format-Table -AutoSize

Importante

L'interfaccia della riga di comando di Firma supporta RSA solo algoritmi, pertanto l'uso ECDSA di per generare l'impronta digitale non riuscirà a convalidare la firma durante l'installazione. Questo non blocca l'installazione, ma viene visualizzato un avviso "Firma non valida" nella finestra del programma di installazione VSIX durante l'installazione.

Riepilogo

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

Descrizione

Sign CLI è uno strumento Dotnet che firma in modo ricorsivo file e contenitori con un certificato e privato. Il certificato e la chiave privata possono essere ottenuti da un file (PFX, P7B, CER) o da un certificato installato in un archivio certificati fornendo un'impronta SHA-256digitale , SHA-384o SHA-512 . È possibile accedere alle chiavi USB usando un provider di servizi di crittografia (CSP) implementato dal produttore e accessibile dall'archivio certificati.

Installazione

Installare l'interfaccia della riga di comando di Sign a livello globale con dotnet tool install sign --prerelease --global

Installazione offline dell'interfaccia della riga di comando di Firma

Per gli ambienti isolati è possibile scaricare un pacchetto NuGet dell'interfaccia della riga di comando sign e installarlo usando:

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

Argomenti

  • VSIX-paths(s)

    Specifica i percorsi del pacchetto VSIX da firmare.

Opzioni

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

    File PFX, P7B o CER contenente un certificato e potenzialmente una chiave privata.

  • -p|--password <PASSWORD>

    Password facoltativa per il file di certificato.

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

    Impronta digitale SHA-256, SHA-384 o SHA-512 usata per identificare un certificato prima della firma.

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

    Provider del servizio di crittografia contenente una chiave privata.

    Nota

    È possibile visualizzare tutti i provider di servizi di configurazione disponibili eseguendo certutil -csplist, in cui i provider legacy specificano un "Tipo di provider" e i provider CNG hanno in genere "Provider di archiviazione chiavi" nei nomi. certutil -csptest "<provider name>" fornisce altre informazioni su provider specifici.

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

    Nome del contenitore di chiavi private.

    Nota

    È possibile trovare tutte le chiavi archiviate in un provider di servizi di configurazione eseguendo certutil -csp <Provider Name> -key.

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

    Usare un contenitore di chiavi private a livello di computer anziché il contenitore a livello di utente predefinito.

  • -d|--description <DESCRIPTION>

    Descrizione del certificato di firma.

  • -u|--descriptionUrl <URL>

    Url della descrizione del certificato di firma.

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

    Algoritmo digest con cui eseguire l'hashing del file.

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

    URL del server timestamp RFC 3161. [impostazione predefinita: http://timestamp.acs.microsoft.com/]

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

    Specifica l'URL del server di timestamp RFC 3161.

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

    Usato con -tr l'opzione per richiedere un algoritmo digest usato dal server timestamp RFC 3161.

  • -o|--output <PATH>

    File di output o cartella se vengono specificati più file. Se omesso, l'input viene sovrascritto.

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

    Directory di base per i file di cui eseguire l'override della directory di lavoro.

  • --f|--force

    Sovrascrive una firma, se presente.

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

    Concorrenza massima (il valore predefinito è 4)

  • -fl | --filelist <PATH>

    Percorso del file contenente i percorsi dei file da firmare o escludere dalla firma all'interno del contenitore.

  • -?|-h|--help

    Stampa una descrizione di come usare il comando .

  • -i|--interactive

    Richiedere l'input dell'utente, necessario in alcuni scenari, ad esempio quando si usa una chiave protetta dall'utente, in cui è necessario immettere una password dall'utente.

Esempi

  • Firmare contoso.vsix con un certificato importato nell'archivio certificati utente :

    sign code certificate-store contoso.vsix -cfp 24D589...FB9523B36E -d "Constoso VSIX Signature" -u "http://www.contoso.com"
    
  • Firmare contoso.vsix con certificato cert.pfx (non protetto da password) usando un'impronta digitale 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"
    
  • Firmare contoso.vsix con il certificato cert.pfx (protetto da password):

    sign code certificate-store contoso.vsix -cfp 24D589...FB9523B36E -cf cert.pfx -p <password> -d "Constoso VSIX Signature" -u "http://www.contoso.com"
    
  • Firmare più pacchetti VSIX: contoso.vsix e tutti i file vsix nella directory specificata con il certificato cert.pfx (non protetto da password):

    sign code certificate-store *.vsix -cfp 24D589...FB9523B36E -cf cert.pfx -d "Constoso VSIX Signature" -u "http://www.contoso.com"
    
  • Firmare contoso.vsix con un certificato archiviato in un'unità USB sicura.

    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"
    
  • Firmare contoso.vsix con un certificato archiviato in un'unità USB sicura e accedere dall'archivio certificati del computer (opzione 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 l'opzione non viene specificata, lo strumento controlla tutti i contenitori nel provider di servizi di configurazione fornito per ottenere un certificato di impronta digitale SHA corrispondente.

  • Firmare contoso.vsix con un certificato archiviato in un'unità USB sicura specificando l'algoritmo digest del file (-fd), il server timestamp (-t) e un percorso di output personalizzato (-o) per il file VSIX firmato.

    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"