SignTool.exe (strumento per la firma)SignTool.exe (Sign Tool)

Lo strumento Firma è uno strumento da riga di comando per la firma digitale dei file, la verifica delle firme e l'aggiunta di timestamp nei file.Sign Tool is a command-line tool that digitally signs files, verifies signatures in files, and time-stamps files.

Viene installato automaticamente con Visual Studio.This tool is automatically installed with Visual Studio. Per eseguire lo strumento, usare il Prompt dei comandi per gli sviluppatori per Visual Studio (o il prompt dei comandi di Visual Studio in Windows 7).To run the tool, use the Developer Command Prompt for Visual Studio (or the Visual Studio Command Prompt in Windows 7). Per altre informazioni, vedere Prompt dei comandi.For more information, see Command Prompts.

Al prompt dei comandi digitare quanto segue:At the command prompt, type the following:

SintassiSyntax

signtool [command] [options] [file_name | ...]  

ParametriParameters

ArgomentoArgument DescriptionDescription
command Uno dei quattro comandi (catdb, sign, Timestamp o Verify) che specifica l'operazione da eseguire su un file.One of four commands (catdb, sign, Timestamp, or Verify) that specifies an operation to perform on a file. Per una descrizione di ogni comando, vedere la tabella successiva.For a description of each command, see the next table.
options Opzione che modifica un comando.An option that modifies a command. Oltre alle opzioni globali /q e /v, ciascun comando supporta un set univoco di opzioni.In addition to the global /q and /v options, each command supports a unique set of options.
file_name Il percorso di un file da firmare.The path to a file to sign.

Lo strumento Firma supporta i comandi seguenti.The following commands are supported by Sign Tool. Ogni comando è usato con set distinti di opzioni, elencati nelle rispettive sezioni.Each command is used with distinct sets of options, which are listed in their respective sections.

ComandoCommand DescriptionDescription
catdb Aggiunge o rimuove un file di catalogo da un database di cataloghi.Adds a catalog file to, or removes it from, a catalog database. I database dei cataloghi vengono usati per la ricerca automatica di file di catalogo e sono identificati dal GUID.Catalog databases are used for automatic lookup of catalog files and are identified by GUID. Per un elenco delle opzioni supportate dal comando catdb, vedere Opzioni del comando catdb.For a list of the options supported by the catdb command, see catdb Command Options.
sign Firma digitalmente i file.Digitally signs files. Le firme digitali impediscono la manomissione dei file e consentono agli utenti di verificare il firmatario in base a un certificato di firma.Digital signatures protect files from tampering, and enable users to verify the signer based on a signing certificate. Per un elenco delle opzioni supportate dal comando sign, vedere Opzioni del comando sign.For a list of the options supported by the sign command, see sign Command Options.
Timestamp Aggiunge un timestamp ai file.Time-stamps files. Per un elenco delle opzioni supportate dal comando TimeStamp, vedere Opzioni del comando TimeStamp.For a list of the options supported by the TimeStamp command, see TimeStamp Command Options.
Verify Verifica la firma digitale dei file determinando se il certificato di firma è stato emesso da un'autorità attendibile, se è stato revocato e, facoltativamente, se è valido per criteri specifici.Verifies the digital signature of files by determining whether the signing certificate was issued by a trusted authority, whether the signing certificate has been revoked, and, optionally, whether the signing certificate is valid for a specific policy. Per un elenco delle opzioni supportate dal comando Verify, vedere Opzioni del comando Verify.For a list of the options supported by the Verify command, see Verify Command Options.

Le opzioni riportate di seguito si applicano a tutti i comandi dello strumento Firma.The following options apply to all Sign Tool commands.

Opzione globaleGlobal option DescriptionDescription
/q/q Non visualizza alcun output se il comando viene eseguito correttamente e visualizza un output minimo se il comando ha esito negativo.Displays no output if the command runs successfully, and displays minimal output if the command fails.
/v/v Visualizza un output dettagliato indipendentemente dall'esito del comando e visualizza messaggi di avviso.Displays verbose output regardless of whether the command runs successfully or fails, and displays warning messages.
/debug/debug Visualizza le informazioni di debug.Displays debugging information.

Opzioni del comando catdbcatdb Command Options

Nella tabella seguente vengono illustrate le opzioni utilizzabili con il comando catdb.The following table lists the options that can be used with the catdb command.

Opzione catdbCatdb option DescriptionDescription
/d Specifica che il database dei cataloghi predefinito viene aggiornato.Specifies that the default catalog database is updated. Se non si usa né l'opzione /d né l'opzione /g, viene aggiornato il database dei driver e dei componenti del sistema.If neither the /d nor the /g option is used, Sign Tool updates the system component and driver database.
/g GUID/g GUID Specifica che il database dei cataloghi identificato dall'identificatore univoco globale GUID è aggiornato.Specifies that the catalog database identified by the globally unique identifier GUID is updated.
/r Rimuove i cataloghi specificati dal database dei cataloghi.Removes the specified catalogs from the catalog database. Se questa opzione non è specificata, i cataloghi specificati vengono aggiunti al database dei cataloghi.If this option is not specified, Sign Tool adds the specified catalogs to the catalog database.
/u Specifica che un nome univoco viene generato automaticamente per i file di catalogo aggiunti.Specifies that a unique name is automatically generated for the added catalog files. Se necessario, i file di catalogo vengono rinominati per evitare conflitti con i nomi dei file di catalogo esistenti.If necessary, the catalog files are renamed to prevent name conflicts with existing catalog files. Se questa opzione non è specificata, i cataloghi esistenti che hanno lo stesso nome dei cataloghi aggiunti vengono sovrascritti.If this option is not specified, Sign Tool overwrites any existing catalog that has the same name as the catalog being added.

Opzioni del comando signsign Command Options

Nella tabella seguente vengono illustrate le opzioni utilizzabili con il comando sign.The following table lists the options that can be used with the sign command.

Opzioni del comando signSign command option DescriptionDescription
/a Seleziona automaticamente il miglior certificato di firma.Automatically selects the best signing certificate. Verranno trovati tutti i certificati validi che soddisfano tutte le condizioni specificate e verrà selezionato quello valido per il periodo più lungo.Sign Tool will find all valid certificates that satisfy all specified conditions and select the one that is valid for the longest time. Se questa opzione non è presente, è prevista la presenza di un solo certificato di firma valido.If this option is not present, Sign Tool expects to find only one valid signing certificate.
/ac file/ac file Aggiunge un altro certificato dal file al blocco di firme.Adds an additional certificate from file to the signature block.
/as Aggiunge questa firma.Appends this signature. Se non è presente alcuna firma primaria, questa firma viene impostata come primaria.If no primary signature is present, this signature is made the primary signature instead.
/c NomeModelloCertificato/c CertTemplateName Specifica un'estensione Microsoft, Certificate Template Name, per il certificato di firma.Specifies the Certificate Template Name (a Microsoft extension) for the signing certificate.
/csp NomeCSP/csp CSPName Specifica il provider del servizio di crittografia (CSP) che contiene il contenitore di chiavi private.Specifies the cryptographic service provider (CSP) that contains the private key container.
/d Descrizione/d Desc Specifica una descrizione del contenuto firmato.Specifies a description of the signed content.
/du URL/du URL Specifica un URL (Uniform Resource Locator) per la descrizione espansa del contenuto firmato.Specifies a Uniform Resource Locator (URL) for the expanded description of the signed content.
/f FileCertificatoFirma/f SignCertFile Specifica il certificato di firma in un file.Specifies the signing certificate in a file. Se il file è nel formato PFX (Personal Information Exchange) ed è protetto da una password, usare l'opzione /p per specificare la password.If the file is in Personal Information Exchange (PFX) format and protected by a password, use the /p option to specify the password. Se il file non contiene chiavi private, usare le opzioni /csp e /kc per specificare il CSP e il nome del contenitore delle chiavi private.If the file does not contain private keys, use the /csp and /kc options to specify the CSP and private key container name.
/fd Specifica l'algoritmo digest file da usare per creare le firme del file.Specifies the file digest algorithm to use for creating file signatures. Il valore predefinito è SHA1.The default is SHA1.
/i NomeAutoritàEmittente/i IssuerName Specifica il nome dell'emittente del certificato di firma.Specifies the name of the issuer of the signing certificate. Questo valore può essere una sottostringa dell'intero nome dell'emittente.This value can be a substring of the entire issuer name.
/kc NomeContenitoreChiavePrivata/kc PrivKeyContainerName Specifica il nome del contenitore delle chiavi private.Specifies the private key container name.
/n NomeSoggetto/n SubjectName Specifica il nome del soggetto del certificato di firma.Specifies the name of the subject of the signing certificate. Questo valore può essere una sottostringa dell'intero nome del soggetto.This value can be a substring of the entire subject name.
/nph Se supportato, sopprime gli hash delle pagine per i file eseguibili.If supported, suppresses page hashes for executable files. Il valore predefinito è determinato dalla variabile di ambiente SIGNTOOL_PAGE_HASHES e dalla versione di wintrust.dll.The default is determined by the SIGNTOOL_PAGE_HASHES environment variable and by the wintrust.dll version. Questa opzione viene ignorata per i file non PE.This option is ignored for non-PE files.
/p Password/p Password Specifica la password da usare all'apertura di un file PFXSpecifies the password to use when opening a PFX file. (usare l'opzione /f per specificare un file PFX).(Use the /f option to specify a PFX file.)
/p7 Percorso/p7 Path Specifica di produrre un file PKCS (Public Key Cryptography Standards) #7 per ogni file di contenuto specificato.Specifies that a Public Key Cryptography Standards (PKCS) #7 file is produced for each specified content file. Ai file PKCS #7 viene assegnato un nome corrispondente a percorso\nomefile.p7.PKCS #7 files are named path\filename.p7.
/p7ce Valore/p7ce Value Specifica le opzioni per il contenuto PKCS #7 firmato.Specifies options for the signed PKCS #7 content. Impostare Valore su "Embedded" per incorporare il contenuto firmato nel file PKCS #7 o su "DetachedSignedData" per generare la parte di dati firmati di un file PKCS #7 scollegato.Set Value to "Embedded" to embed the signed content in the PKCS #7 file, or to "DetachedSignedData" to produce the signed data portion of a detached PKCS #7 file. Se non si usa l'opzione /p7ce, il contenuto firmato è incorporato per impostazione predefinita.If the /p7ce option is not used, the signed content is embedded by default.
/p7co <OID>/p7co <OID> Specifica l'identificatore di oggetto (OID) tramite cui viene identificato il contenuto PKCS #7 firmato.Specifies the object identifier (OID) that identifies the signed PKCS #7 content.
/ph Se supportato, genera gli hash delle pagine per i file eseguibili.If supported, generates page hashes for executable files.
/r NomeSoggettoRadice/r RootSubjectName Specifica il nome del soggetto del certificato radice cui deve essere concatenato il certificato di firma.Specifies the name of the subject of the root certificate that the signing certificate must chain to. Questo valore può essere una sottostringa dell'intero nome del soggetto del certificato radice.This value may be a substring of the entire subject name of the root certificate.
/s NomeArchivio/s StoreName Specifica l'archivio da aprire durante la ricerca del certificato.Specifies the store to open when searching for the certificate. Se questa opzione non è specificata, viene aperto l'archivio My.If this option is not specified, the My store is opened.
/sha1 Hash/sha1 Hash Specifica l'hash SHA1 del certificato di firma.Specifies the SHA1 hash of the signing certificate. Il valore hash SHA1 viene specificato in genere quando più certificati soddisfano i criteri specificati dalle opzioni rimanenti.The SHA1 hash is commonly specified when multiple certificates satisfy the criteria specified by the remaining switches.
/sm Specifica di usare un archivio del computer anziché un archivio utente.Specifies that a machine store, instead of a user store, is used.
/t URL/t URL Specifica l'URL del server di timestamp.Specifies the URL of the time stamp server. Se questa opzione (o /tr) non è presente, al file firmato non verrà aggiunto il timestamp.If this option (or /tr) is not present, the signed file will not be time stamped. Se l'aggiunta del timestamp non riesce, viene generato un avviso.A warning is generated if time stamping fails. Non è possibile usare questa opzione con l'opzione /tr.This option cannot be used with the /tr option.
/td algoritmo/td alg Usata con l'opzione /tr per richiedere un algoritmo digest usato dal server di timestamp RFC 3161.Used with the /tr option to request a digest algorithm used by the RFC 3161 time stamp server.
/tr URL/tr URL Specifica l'URL del server di timestamp RFC 3161.Specifies the URL of the RFC 3161 time stamp server. Se questa opzione (o /t) non è presente, al file firmato non verrà aggiunto il timestamp.If this option (or /t) is not present, the signed file will not be time stamped. Se l'aggiunta del timestamp non riesce, viene generato un avviso.A warning is generated if time stamping fails. Non è possibile usare questa opzione con l'opzione /t.This option cannot be used with the /t option.
/u Utilizzo/u Usage Specifica l'utilizzo chiavi avanzato (EKU) che deve essere presente nel certificato di firma.Specifies the enhanced key usage (EKU) that must be present in the signing certificate. Il valore di utilizzo può essere specificato tramite OID o stringa.The usage value can be specified by OID or string. L'utilizzo predefinito è "Firma codice" (1.3.6.1.5.5.7.3.3).The default usage is "Code Signing" (1.3.6.1.5.5.7.3.3).
/uw Specifica l'utilizzo di "Verifica dei componenti di sistema Windows" (1.3.6.1.4.1.311.10.3.6).Specifies usage of "Windows System Component Verification" (1.3.6.1.4.1.311.10.3.6).

Per esempi di utilizzo, vedere Using SignTool to Sign a File (Uso di SignTool per firmare un file).For usage examples, see Using SignTool to Sign a File.

Opzioni del comando TimeStampTimeStamp Command Options

Nella tabella seguente vengono illustrate le opzioni utilizzabili con il comando TimeStamp.The following table lists the options that can be used with the TimeStamp command.

Opzione TimeStampTimeStamp option DescriptionDescription
/p7 Aggiunge un timestamp ai file PKCS #7.Time stamps PKCS #7 files.
/t URL/t URL Specifica l'URL del server di timestamp.Specifies the URL of the time stamp server. È necessario che il file a cui viene aggiunto il timestamp sia stato precedentemente firmato.The file being time stamped must have previously been signed. È richiesta l'opzione /t o /tr.Either the /t or the /tr option is required.
/td algoritmo/td alg Richiede un algoritmo digest usato dal server di timestamp RFC 3161.Requests a digest algorithm used by the RFC 3161 time stamp server. /td viene usata insieme all'opzione /tr./td is used with the /tr option.
/tp indice/tp index Aggiunge un timestamp alla firma in corrispondenza di indice.Time stamps the signature at index.
/tr URL/tr URL Specifica l'URL del server di timestamp RFC 3161.Specifies the URL of the RFC 3161 time stamp server. È necessario che il file a cui viene aggiunto il timestamp sia stato precedentemente firmato.The file being time stamped must have previously been signed. È richiesta l'opzione /tr o /t.Either the /tr or the /t option is required.

Per un esempio di utilizzo, vedere Adding Time Stamps to Previously Signed Files (Aggiunta di timestamp ai file firmati precedentemente).For a usage example, see Adding Time Stamps to Previously Signed Files.

Opzioni del comando VerifyVerify Command Options

Opzione VerifyVerify option DescriptionDescription
/a Specifica che tutti i metodi possono essere usati per verificare il file.Specifies that all methods can be used to verify the file. Innanzitutto, viene effettuata una ricerca nei database dei cataloghi per determinare se il file è firmato in un catalogo.First, the catalog databases are searched to determine whether the file is signed in a catalog. Se non risulta firmato in alcun catalogo, viene effettuato un tentativo di verifica della firma incorporata del file.If the file is not signed in any catalog, Sign Tool attempts to verify the file's embedded signature. Questa opzione è consigliata per la verifica di file che possono risultare firmati o non firmati all'interno di un catalogo.This option is recommended when verifying files that may or may not be signed in a catalog. Gli esempi di questi file includono i file o i driver di Windows.Examples of these files include Windows files or drivers.
/ad Trova il catalogo usando il database dei cataloghi predefinito.Finds the catalog by using the default catalog database.
/ag GUIDDatabaseCatalogo/ag CatDBGUID Trova il catalogo nel database dei cataloghi identificato da GUIDDatabaseCatalogo.Finds the catalog in the catalog database that is identified by the CatDBGUID.
/all Verifica tutte le firme in un file che include più firme.Verifies all signatures in a file that includes multiple signatures.
/as Trova il catalogo usando il database dei cataloghi (driver) dei componenti del sistema.Finds the catalog by using the system component (driver) catalog database.
/c FileCatalogo/c CatFile Specifica il file di catalogo in base al nome.Specifies the catalog file by name.
/d Specifica che lo strumento Firma deve visualizzare la descrizione e l'URL della descrizione.Specifies that Sign Tool should print the description and the description URL.
/ds Indice/ds Index Verifica la firma in una posizione specificata.Verifies the signature at a specified position.
/hash (SHA1|SHA256)/hash (SHA1|SHA256) Specifica un algoritmo hash facoltativo da usare quando si cerca un file in un catalogo.Specifies an optional hash algorithm to use when searching for a file in a catalog.
/kp Specifica che la verifica deve essere eseguita con i criteri di firma del driver in modalità kernel.Specifies that verification should be performed with the kernel-mode driver signing policy.
/ms Usa semantica di verifica multipla.Uses multiple verification semantics. Questo è il comportamento predefinito di una chiamata WinVerifyTrust in Windows 8Windows 8 e versioni successive.This is the default behavior of a WinVerifyTrust call on Windows 8Windows 8 and above.
/o Versione/o Version Verifica il file in base alla versione del sistema operativo.Verifies the file by operating system version. Versione ha il formato seguente: IDPiattaforma:VersionePrincipale.VersioneSecondaria.NumeroBuild.Version has the following form: PlatformID:VerMajor.VerMinor.BuildNumber. IDPiattaforma rappresenta il valore sottostante di un membro dell'enumerazione PlatformID.PlatformID represents the underlying value of a PlatformID enumeration member. Importante: L'uso dell'opzione /o è consigliato.Important: The use of the /o switch is recommended. Se /o non è specificata, è possibile che vengano restituiti risultati imprevisti.If /o is not specified, SignTool.exe may return unexpected results. Ad esempio, se non si include l'opzione /o, i cataloghi di sistema che vengono convalidati correttamente in un sistema operativo precedente potrebbero non essere convalidati correttamente in un sistema operativo più nuovo.For example, if you do not include the /o switch, system catalogs that validate correctly on an older operating system may not validate correctly on a newer operating system.
/p7 Verifica i file PKCS #7.Verifies PKCS #7 files. Non viene usato alcun criterio esistente per la convalida PKCS #7.No existing policies are used for PKCS #7 validation. La firma viene controllata e viene creata una catena per il certificato di firma.The signature is checked and a chain is built for the signing certificate.
/pa Specifica che devono essere usati i criteri di verifica Authenticode predefiniti.Specifies that the Default Authenticode Verification Policy should be used. Se l'opzione /pa non è specificata, vengono usati i criteri di verifica dei driver di Windows.If the /pa option is not specified, Sign Tool uses the Windows Driver Verification Policy. Non è possibile usare questa opzione con le opzioni catdb.This option cannot be used with the catdb options.
/pg GUIDCriteri/pg PolicyGUID Specifica i criteri di verifica in base al GUID.Specifies a verification policy by GUID. GUIDCriteri corrisponde all'IDAzione dei criteri di verifica.The PolicyGUID corresponds to the ActionID of the verification policy. Non è possibile usare questa opzione con le opzioni catdb.This option cannot be used with the catdb options.
/ph Specifica che lo strumento Firma deve visualizzare e verificare i valori hash delle pagine.Specifies that Sign Tool should print and verify page hash values.
/r NomeSoggettoRadice/r RootSubjectName Specifica il nome del soggetto del certificato radice cui deve essere concatenato il certificato di firma.Specifies the name of the subject of the root certificate that the signing certificate must chain to. Questo valore può essere una sottostringa dell'intero nome del soggetto del certificato radice.This value can be a substring of the entire subject name of the root certificate.
/tw Specifica che, se la firma non contiene un timestamp, deve essere generato un avviso.Specifies that a warning should be generated if the signature is not time stamped.

Per esempi di utilizzo, vedere Using SignTool to Verify a File Signature (Uso di SignTool per verificare un firma di file).For usage examples, see Using SignTool to Verify a File Signature.

Valore restituitoReturn Value

Lo strumento Firma restituisce uno dei seguenti codici di uscita quando termina.Sign Tool returns one of the following exit codes when it terminates.

Codice di uscitaExit code DescriptionDescription
00 Esecuzione completata correttamente.Execution was successful.
11 Esecuzione non riuscita.Execution has failed.
22 Esecuzione completata con avvisi.Execution has completed with warnings.

EsempiExamples

Il seguente comando aggiunge il file di catalogo MyCatalogFileName.cat al database dei driver e dei componenti di sistema.The following command adds the catalog file MyCatalogFileName.cat to the system component and driver database. L'opzione /u genera un nome univoco, se necessario, per impedire la sostituzione di un file di catalogo esistente denominato MyCatalogFileName.cat.The /u option generates a unique name if necessary to prevent replacing an existing catalog file named MyCatalogFileName.cat.

signtool catdb /v /u MyCatalogFileName.cat  

Il comando seguente firma automaticamente un file usando il certificato migliore.The following command signs a file automatically by using the best certificate.

signtool sign /a MyFile.exe  

Il comando seguente appone una firma digitale a un file usando un certificato archiviato in un file PFX protetto da password.The following command digitally signs a file by using a certificate stored in a password-protected PFX file.

signtool sign /f MyCert.pfx /p MyPassword MyFile.exe  

Il comando seguente appone una firma digitale e un timestamp a un file.The following command digitally signs and time-stamps a file. Il certificato usato per firmare il file è memorizzato in un file PFX.The certificate used to sign the file is stored in a PFX file.

signtool sign /f MyCert.pfx /t http://timestamp.verisign.com/scripts/timstamp.dll MyFile.exe  

Il comando seguente firma un file usando un certificato contenuto nell'archivio My con nome soggetto My Company Certificate.The following command signs a file by using a certificate located in the My store that has a subject name of My Company Certificate.

signtool sign /n "My Company Certificate" MyFile.exe  

Il comando seguente firma un controllo ActiveX e fornisce le informazioni visualizzate da Internet Explorer quando viene richiesto all'utente di installare il controllo.The following command signs an ActiveX control and provides information that is displayed by Internet Explorer when the user is prompted to install the control.

Signtool sign /f MyCert.pfx /d: "MyControl" /du http://www.example.com/MyControl/info.html MyControl.exe  

Il comando seguente appone un timestamp a un file a cui è già stata apposta una firma digitale.The following command time-stamps a file that has already been digitally signed.

signtool timestamp /t http://timestamp.verisign.com/scripts/timstamp.dll MyFile.exe  

Il comando seguente verifica che un file sia stato firmato.The following command verifies that a file has been signed.

signtool verify MyFile.exe  

Il comando seguente verifica un file di sistema che può essere firmato in un catalogo.The following command verifies a system file that may be signed in a catalog.

signtool verify /a SystemFile.dll  

Il comando seguente verifica un file di sistema firmato in un catalogo denominato MyCatalog.cat.The following command verifies a system file that is signed in a catalog named MyCatalog.cat.

signtool verify /c MyCatalog.cat SystemFile.dll  

Vedere ancheSee also