Opzioni di firma codice ADT

ADT utilizza JCA (Java Cryptography Architecture) per accedere alle chiavi private e ai certificati per la firma di applicazioni AIR. Le opzioni di firma identificano l'archivio di chiavi nonché il certificato e la chiave privata all'interno di quell'archivio.

L'archivio di chiavi deve includere sia la chiave privata che la catena di certificati associata. Se il certificato per la firma è concatenato a un certificato attendibile presente su un computer, il contenuto del campo del nome comune del certificato viene visualizzato come nome editore nella finestra di dialogo di installazione di AIR.

ADT richiede che il certificato sia conforme allo standard x509v3 (RFC3280) e includa l'estensione Extended Key Usage con valori appropriati per la firma del codice. I limiti definiti all'interno del certificato vengono rispettati e possono precludere l'utilizzo di alcuni certificati per la firma di applicazioni AIR.

Nota: se necessario, ADT utilizza le impostazioni proxy dell'ambiente di runtime Java per connettersi alle risorse Internet e verificare gli elenchi di revoca dei certificati e ottenere indicatori di data e ora. Se si incontrano problemi nella connessione a queste risorse Internet quando si utilizza ADT e la rete richiede impostazioni proxy specifiche, può essere necessario configurare le impostazioni proxy JRE.

Sintassi delle opzioni di firma AIR

Le opzioni di firma prevedono la seguente sintassi:

-alias aliasName -storetype type -keystore path -storepass password1 -keypass password2 -providerName className -tsa url

-alias : l'alias di una chiave nell'archivio di chiavi. Se un archivio di chiavi contiene un solo certificato, non è necessario specificare un alias. Quando non è specificato alcun alias, ADT utilizza la prima chiave dell'archivio.

Non tutte le applicazioni di gestione dell'archivio di chiavi consentono l'assegnazione di un alias ai certificati. Quando usate l'archivio di chiavi di sistema di Windows, ad esempio, utilizzate come alias il nome distinto del certificato. L'utilità Java Keytool consente di elencare i certificati disponibili in modo che sia possibile determinare l'alias. Ad esempio, l'esecuzione del comando:

keytool -list -storetype Windows-MY

genera un output analogo al seguente per un certificato:

CN=TestingCert,OU=QE,O=Adobe,C=US, PrivateKeyEntry, 
Certificate fingerprint (MD5): 73:D5:21:E9:8A:28:0A:AB:FD:1D:11:EA:BB:A7:55:88

Per fare riferimento a questo certificato sulla riga di comando di ADT, impostate l'alias su:

CN=TestingCert,OU=QE,O=Adobe,C=US

In Mac OS X, l'alias di un certificato nel portachiavi corrisponde al nome visualizzato nell'applicazione Accesso portachiavi.

-storetype : il tipo di archivio di chiavi, determinato dall'implementazione dell'archivio di chiavi. L'implementazione dell'archivio di chiavi predefinita inclusa con la maggior parte delle installazioni di Java supporta i tipi JKS e PKCS12. Java 5.0 include il supporto per il tipo PKCS11 per l'accesso agli archivi di chiavi sui token hardware, e il tipo Keychain, per l'accesso al portachiavi di Mac OS X. Java 6.0 include il supporto per il tipo MSCAPI (in Windows). Se sono stati installati e configurati altri provider JCA, potrebbero essere disponibili ulteriori tipi di archivi di chiavi. Se non è stato specificato alcun tipo di archivio di chiavi, viene utilizzato il tipo predefinito per il provider JCA predefinito.

Tipo di archivio

Formato dell'archivio di chiavi

Versione minima di Java

JKS

File dell'archivio di chiavi Java (keystore)

1.2

PKCS12

File PKCS12 (.p12 o .pfx)

1.4

PKCS11

Token hardware

1.5

KeychainStore

Portachiavi Mac OS X

1.5

Windows-MY o Windows-ROOT

MSCAPI

1.6

-keystore : il percorso al file dell'archivio di chiavi per tipi di archivi basati su file.

-storepass : la password necessaria per accedere all'archivio di chiavi. Se non viene specificata, ADT richiede la password.

-keypass : la password necessaria per accedere alla chiave privata utilizzata per firmare l'applicazione AIR. Se non viene specificata, ADT richiede la password.

Nota: se includete una password nel comando ADT, i caratteri della password vengono salvati nella cronologia della riga di comando. Di conseguenza, l'uso delle opzioni -keypass e -storepass è sconsigliato quando la sicurezza del certificato è un aspetto importante. Inoltre, se omettete le opzioni relative alla password, i caratteri che digitate nei prompt delle password non vengono visualizzati (per gli stessi motivi legati alla sicurezza). Digitate semplicemente la password e premete il tasto Invio.

-providerName : il provider JCA per il tipo di archivio di chiavi specificato. Se il valore non viene specificato, ADT utilizza il provider predefinito per quel tipo di archivio di chiavi.

-tsa : specifica l'URL di un server di indicatori di data e ora conforme a RFC3161 per applicare l'indicazione di data e ora alla firma digitale. Se non viene specificato alcun URL, viene utilizzato un server di indicatori data e ora fornito da Geotrust. Quando alla firma di un'applicazione AIR vengono aggiunte indicazioni di data e ora, è possibile installare l'applicazione anche dopo che il certificato è scaduto, in quanto l'indicatore di data e ora verifica che il certificato era valido al momento della firma.

Se ADT non è in grado di connettersi al server di indicazione di data e ora, la firma viene annullata e non è possibile produrre alcun pacchetto. Per disattivare l'aggiunta di indicatori di date e ora, specificate -tsa none. Un'applicazione AIR inserita in un pacchetto senza un indicatore di data e ora, tuttavia, non è più installabile dopo la scadenza del certificato per la firma.

Nota: molte delle opzioni di firma sono equivalenti alle opzioni corrispondenti dell'utilità Java Keytool. È possibile utilizzare l'utilità Keytool per esaminare e gestire archivi di chiavi su Windows. Allo stesso scopo, su Mac OS X può utilizzare l'utilità di sicurezza Apple®.

-provisioning-profile Il file di provisioning Apple iOS. (Richiesto solo per la compilazione di applicazioni iOS.)

Esempi di opzioni di firma

Firma mediante un file p12:

-storetype pkcs12 -keystore cert.p12

Firma mediante l'archivio di chiavi Java predefinito:

-alias AIRcert -storetype jks

Firma mediante uno specifico archivio di chiavi Java:

-alias AIRcert -storetype jks -keystore certStore.keystore

Firma mediante il portachiavi Mac OS X:

-alias AIRcert -storetype KeychainStore -providerName Apple

Firma mediante l'archivio di chiavi di sistema di Windows:

-alias cn=AIRCert -storeype Windows-MY

Firma mediante un token hardware (consultate le istruzioni del produttore del token sulla configurazione di Java per l'utilizzo del token e per il valore corretto di providerName):

-alias AIRCert -storetype pkcs11 -providerName tokenProviderName

Firma senza incorporare un indicatore di data e ora:

-storetype pkcs12 -keystore cert.p12 -tsa none