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-256
solo , SHA-384
e 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-256
digitale , SHA-384
o 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"