Firmare un pacchetto dell'app di Windows 10Sign a Windows 10 app package

La firma del pacchetto è un passaggio obbligatorio nel processo di creazione del pacchetto di un'app di Windows 10 che possa essere distribuito.App package signing is a required step in the process of creating a Windows 10 app package that can be deployed. Windows 10 richiede che tutte le applicazioni siano firmate con un certificato di firma del codice valido.Windows 10 requires all applications to be signed with a valid code signing certificate.

Per installare correttamente un'applicazione di Windows 10, il pacchetto non deve essere semplicemente firmato ma anche considerato attendibile sul dispositivo.To successfully install a Windows 10 application, the package doesn't just have to be signed but also trusted on the device. Questo significa che il certificato deve far parte della catena di una delle radici attendibili sul dispositivo.This means that the certificate has to chain to one of the trusted roots on the device. Per impostazione predefinita, Windows 10 considera attendibili i certificati ricevuti da quasi tutte le autorità che forniscono certificati di firma del codice.By default, Windows 10 trusts certificates from most of the certificate authorities that provide code signing certificates.

ArgomentoTopic DescrizioneDescription
Prerequisiti per la firmaPrerequisites for signing Questa sezione illustra i prerequisiti necessari per firmare il pacchetto dell'app di Windows 10.This section discusses the prerequisites required to sign the Windows 10 app package.
Uso di SignToolUsing SignTool Questa sezione illustra come usare lo strumento SignTool di Windows 10 SDK per firmare il pacchetto dell'app.This section discusses how to use SignTool from the Windows 10 SDK to sign the app package.
Firma di un pacchetto MSIX con la firma di Device GuardSign an MSIX package with Device Guard signing Questa sezione illustra come firmare l'app con la firma di Device Guard.This section discusses how to sign your app with Device Guard signing.

Aggiunta del timestampTimestamping

È consigliabile usare il timestamp per la firma dell'app con un certificato.It is highly recommended that Timestamping is used when signing your app with a certificate. L'aggiunta del timestamp preserva la firma, consentendo al pacchetto dell'app di essere accettato dalla piattaforma di distribuzione anche dopo la scadenza del certificato.Timestamping preserves the signature allowing the app package to accepted by app deployment platform even after the certificate has expired. Al momento dell'ispezione del pacchetto, il timestamp consente di convalidare la firma rispetto al momento in cui è stata apposta.At the package inspection time, the timestamp allows for the package signature to be validated with respect to the time it was signed. In questo modo, i pacchetti possono essere accettati anche se il certificato non è più valido.This allows for packages to be accepted even after the certificate is no longer valid. I pacchetti privi di timestamp verranno valutati rispetto all'ora corrente e, se il certificato non è più valido, Windows non accetterà il pacchetto.Packages that are not timestamped will be evaluated against the current time and if the certificate is no longer valid, Windows will not accept the package.

Di seguito sono elencati i diversi scenari di aggiunta della firma all'app con/senza timestamp:The following are the different scenarios around app signing with/out timestamping:

App firmata senza l'aggiunta del timestampApp is signed without timestamping App firmata con l'aggiunta del timestampApp is signed with timestamping
Il certificato è validoCertificate is valid L'app viene installataApp will install L'app viene installataApp will install
Il certificato non è valido (scaduto)Certificate is invalid(expired) L'app non viene installataApp will fail to install L'app viene installata perché l'autenticità del certificato è stata verificata al momento della firma dall'autorità di riconoscimento timestampApp will install as the authenticity of the cert was verified at signing by timestamping authority

Nota

Se l'app viene installata correttamente in un dispositivo, continuerà a funzionare anche dopo la scadenza del certificato, indipendentemente dalla presenza o meno del timestamp.If the app is successfully installed on a device, it will continue to run even after the certificate expiry regardless of it being timestamped or not.

Modalità dispositivoDevice mode

Windows 10 consente agli utenti di selezionare la modalità di esecuzione del dispositivo nell'app Impostazioni.Windows 10 allows users to select the mode in which to run their device on in the Settings app. Le modalità sono App di Microsoft Store, Sideload app e Modalità sviluppatore.The modes are Microsoft Store apps, Sideload apps, and Developer mode.

App di Microsoft Store è la più sicura, perché consente l'installazione di app solo da Microsoft Store.Microsoft Store apps is the most secure as it only allows the installation of apps from the Microsoft Store. Le app in Microsoft Store sono sottoposte a un processo di certificazione per verificare che siano sicure per l'uso.Apps in the Microsoft Store go through certification process to ensure that the apps are safe for use.

Sideload app e Modalità sviluppatore sono più permissive rispetto alle app firmate da altri certificati, purché i certificati siano attendibili e facciano parte della catena di una delle radici attendibili sul dispositivo.Sideload apps and Developer mode are more permissive of apps that are signed by other certificates as long as those certificates are trusted and chain to one of the trusted roots on the device. Seleziona la modalità sviluppatore solo se sei uno sviluppatore e stai compilando o eseguendo il debug di app di Windows 10.Only select Developer mode if you are a developer and building or debugging Windows 10 apps. Altre informazioni sulla modalità sviluppatore e le relative funzionalità sono disponibili qui.More info about Developer mode and what it provides can be found here.