Come creare un certificato di firma del pacchetto dell'app
Importante
MakeCert.exe è obsoleto. Per indicazioni correnti sulla creazione di un certificato, vedere Creare un certificato per la firma del pacchetto.
Informazioni su come usare MakeCert.exe e Pvk2Pfx.exe per creare un certificato di firma del codice di test, in modo da poter firmare i pacchetti delle app di Windows.
È necessario firmare digitalmente le app di Windows in pacchetto prima di distribuirle. Se non si usa Microsoft Visual Studio 2012 per creare e firmare i pacchetti dell'app, è necessario creare e gestire i certificati di firma del codice personalizzati. È possibile creare certificati usando MakeCert.exe e Pvk2Pfx.exe da Windows Driver Kit (WDK). È quindi possibile usare i certificati per firmare i pacchetti dell'app, in modo che possano essere distribuiti in locale per i test.
Cosa è necessario sapere
Tecnologie
- Introduzione alla firma del codice
- Pacchetti di app e distribuzione
- Strumenti per la firma dei driver
Prerequisiti
- MakeCert.exe e strumenti di Pvk2Pfx.exe da WDK
Disposizioni
Passaggio 1: Determinare il nome dell'editore del pacchetto
Per rendere utilizzabile il certificato di firma con il pacchetto dell'app che si vuole firmare, il nome soggetto del certificato di firma deve corrispondere all'attributo Publisher dell'elementoIdentitynell'AppxManifest.xml per tale app. Si supponga, ad esempio, che il AppxManifest.xml contenga:
<Identity Name="Contoso.AssetTracker"
Version="1.0.0.0"
Publisher="CN=Contoso Software, O=Contoso Corporation, C=US"/>
Per il parametro publisherName specificato con l'utilitàMakeCertnel passaggio successivo, usare "CN=Contoso Software, O=Contoso Corporation, C=US".
Nota
Questa stringa di parametro viene specificata tra virgolette e fa distinzione tra maiuscole e minuscole e spazi vuoti.
La stringa dell'attributo Publisher definita per l'elemento Identity nel AppxManifest.xml deve essere identica alla stringa specificata con il parametro MakeCert /n per il nome soggetto del certificato. Copiare e incollare la stringa laddove possibile.
Passaggio 2: Creare una chiave privata usando MakeCert.exe
Usare l'utilitàMakeCertper creare un certificato di test autofirmato e una chiave privata:
MakeCert /n publisherName /r /h 0 /eku "1.3.6.1.5.5.7.3.3,1.3.6.1.4.1.311.10.3.13" /e <expirationDate> /sv MyKey.pvk MyKey.cer
Questo comando richiede di specificare una password per il file con estensione pvk. È consigliabile scegliere una password complessa e mantenere la chiave privata in una posizione sicura.
È consigliabile usare i parametri suggeriti nell'esempio precedente per questi motivi:
-
/r
-
Crea un certificato radice autofirmato. Ciò semplifica la gestione per il certificato di test.
-
/h 0
-
Contrassegna il vincolo di base per il certificato come entità finale. Ciò impedisce l'uso del certificato come autorità di certificazione (CA) in grado di rilasciare altri certificati.
-
/eku
-
Imposta i valori EKU (Enhanced Key Usage) per il certificato.
Nota
Non inserire uno spazio tra i due valori delimitati da virgole.
- 1.3.6.1.5.5.7.3.3 indica che il certificato è valido per la firma del codice. Specificare sempre questo valore per limitare l'uso previsto per il certificato.
- 1.3.6.1.4.1.311.10.3.13 indica che il certificato rispetta la firma valida per tutta la durata. In genere, se una firma viene contrassegnata come timestamp, purché il certificato sia valido nel momento in cui è stato timestampato, la firma rimane valida anche se il certificato scade. Questa EKU forza la scadenza della firma indipendentemente dalla presenza di un timestamp sulla firma.
-
/e
-
Imposta la data di scadenza del certificato. Specificare un valore per il parametro expirationDate nel formato mm/gg/aa. È consigliabile scegliere una data di scadenza solo se necessario a scopo di test, in genere inferiore a un anno. Questa data di scadenza, in combinazione con l'EKU per la firma a lungo termine, può contribuire a limitare la finestra in cui il certificato può essere compromesso e abusato.
Per altre informazioni sulle altre opzioni, vedi MakeCert.
Passaggio 3: Creare un file con estensione pfx (Personal Information Exchange) usando Pvk2Pfx.exe
Usare l'utilitàPvk2Pfxper convertire i file con estensione pvk e .cer creati MakeCert in un file pfx che è possibile usare con SignTool per firmare un pacchetto dell'app:
Pvk2Pfx /pvk MyKey.pvk /pi pvkPassword /spc MyKey.cer /pfx MyKey.pfx [/po pfxPassword]
I file MyKey.pvk e MyKey.cer sono gli stessi file MakeCert.exe creati nel passaggio precedente. Usando il parametro facoltativo /po, è possibile specificare una password diversa per il file pfx risultante; in caso contrario, .pfx ha la stessa password di MyKey.pvk.
Per altre info su altre opzioni, vedi Pvk2Pfx.
Osservazioni
Dopo aver creato il file pfx, è possibile usare il file con SignTool per firmare un pacchetto dell'app. Per altre informazioni, vedere Come firmare un pacchetto dell'app con SignTool. Tuttavia, il certificato non è ancora considerato attendibile dal computer locale per la distribuzione dei pacchetti dell'app fino a quando non viene installato nell'archivio certificati attendibili del computer locale. È possibile usare Certutil.exe, fornito con Windows.
Per installare i certificati con WindowsCertutil.exe
Eseguire Cmd.exe come amministratore.
Eseguire questo comando:
Certutil -addStore TrustedPeople MyKey.cer
È consigliabile rimuovere i certificati se non sono più in uso. Dal prompt dei comandi dell'amministratore eseguire questo comando:
Certutil -delStore TrustedPeople certID
Il certID è il numero di serie del certificato. Eseguire questo comando per determinare il numero di serie del certificato:
Certutil -store TrustedPeople
Considerazioni sulla sicurezza
Aggiungendo un certificato a archivi certificati del computer locale, si influisce sull'attendibilità del certificato di tutti gli utenti nel computer. È consigliabile installare tutti i certificati di firma del codice desiderati per testare i pacchetti dell'app nell'archivio certificati Persone attendibili. Rimuovere tempestivamente tali certificati quando non sono più necessari, per evitare che vengano usati per compromettere l'attendibilità del sistema.
Argomenti correlati
-
esempi di
-
Concetti