ADT-kodsigneringsalternativ

ADT använder Java Cryptography Architecture (JCA) för att få tillgång till privata nycklar och certifikat för signering av AIR-program. Signeringsalternativen identifierar nyckelbehållaren och den privata nyckeln och certifikatet som finns i nyckelbehållaren.

Nyckelbehållaren måste inkludera både den privata nyckeln och den associerade certifikatkedjan. Om signeringscertifikatkedjan leder till ett betrott certifikat på en dator visas innehållet i certifikatets namnfält som utgivarnamn i dialogrutan för AIR-installation.

ADT kräver att certifikatet följer standarden x509v3 ( RFC3280 ) och inkluderar tillägget för utökad nyckelanvändning med rätt värden för kodsignering. Begränsningar som definieras i certifikatet respekteras och kan utesluta användningen av vissa certifikat för signering av AIR-program.

Obs! ADT använder proxyinställningarna för JRE (Java Runtime Environment), när det är lämpligt, för att ansluta till Internet-resurser och kontrollera listor över återkallade certifikat samt för att hämta tidstämplar. Om det uppstår problem när du ansluter till dessa Internet-resurser medan du använder ADT, och nätverket kräver specifika proxyinställningar, kanske du måste konfigurera JRE-proxyinställningarna.

Syntax för signeringsalternativ i AIR

För signeringsalternativen används följande syntax (på en kommandorad):

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

-alias Aliaset för en nyckel i nyckelbehållaren. Det är inte nödvändigt att ange ett alias när en nyckelbehållare bara innehåller ett certifikat. Om inget alias anges används den första nyckeln i nyckelbehållaren.

Inte alla nyckelhanteringsprogram tillåter att ett alias tilldelas certifikat. När du till exempel använder Windows-systemnyckelbehållare, använder du certifikatets särskiljande namn som alias. Du kan använda verktyget Java Keytool om du vill visa vilka certifikat som är tillgängliga så att du kan bestämma alias. Om du till exempel kör kommandot:

keytool -list -storetype Windows-MY

skapas ett resultat ungefär som detta för ett certifikat:

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

Om du vill referera till det här certifikatet på ADT-kommandoraden ställer du in aliaset på:

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

I Mac OS X är aliaset för ett certifikat i Keychain det namn som visas i Nyckelhanteraren.

-storetype Typen av nyckelbehållare, som bestäms av nyckelbehållarimplementeringen. Standardimplementeringen av nyckelbehållaren som ingår i de flesta installationer av Java har stöd för typerna JKS och PKCS12 . Java 5.0 har stöd för typen PKCS11 , för åtkomst till nyckelbehållare i maskinvarutokens, och typen Keychain för åtkomst till nyckelkedjan i Mac OS X. Java 6.0 har stöd för typen MSCAPI (i Windows). Om andra JCA-providers har installerats och konfigurerats kan det finnas fler typer av nyckelbehållare. Om ingen nyckelbehållare anges används standardtypen för den förvalda JCA-providern.

Lagringstyp

Format på nyckelbehållare

Minimikrav på Java-version

JKS

Java-nyckelfil (.keystore)

1.2

PKCS12

Filen PKCS12 (.p12 eller .pfx)

1.4

PKCS11

Maskinvarutoken

1.5

KeychainStore

Mac OS X-nyckelkedja

1.5

Windows-MY eller Windows-ROOT

MSCAPI

1.6

-keystore Sökvägen till nyckelbehållarfilen för filbaserade lagringstyper.

-storepass Det lösenord som krävs för att få tillgång till nyckelbehållaren. Om du inte anger något lösenord uppmanas du att göra det.

-keypass Det lösenord som krävs för att få tillgång till den privata nyckel som används för att signera AIR-programmet. Om du inte anger något lösenord uppmanas du att göra det.

Obs! Om du anger ett lösenord som en del av ADT-kommandot sparas lösenordstecknen i kommandoradshistoriken. Därför bör du inte använda alternativet -keypass eller -storepass när certifikatets säkerhet är viktig. Tänk även på att när du utesluter lösenordsalternativen visas inte de tecken du skriver när du anger lösenord (av samma säkerhetsskäl). Skriv lösenordet och tryck på Retur.

-providerName JCA-providern för angiven typ av nyckelbehållare. Om detta inte anges används standardprovidern för den typen av nyckelbehållare.

-tsa Anger URL:en för en RFC3161 -kompatibel tidstämpelserver som kan tidstämpla den digitala signaturen. Om ingen URL anges används den förvalda tidstämpelserver som tillhandhålls av Geotrust. När signaturen för ett AIR-program tidstämplas, kan programmet fortfarande installeras efter att signaturcertifikatet har upphört att gälla, eftersom tidstämpeln verifierar att certifikatet var giltigt vid signeringen.

Om ADT inte kan ansluta till tidstämpelservern avbryts signeringen och inget paket skapas. Ange - tsa none om du vill inaktivera tidstämpling. Ett AIR-programpaket utan tidstämpel kan emellertid inte längre installeras efter att certifikatet har upphört att gälla.

Obs! Många av signeringsalternativen är likadana som motsvarande alternativ i Java-verktyget Keytool. Med Keytool kan du undersöka och hantera nyckelbehållare i Windows. I Mac OS X kan du också använda Apple®-säkerhetsverktyget för detta.

-provisioning-profile Apple iOS-provisioneringsfilen. (Krävs endast för att paketera iOS-program.)

Exempel på signeringsalternativ

Signera med en P12-fil:

-storetype pkcs12 -keystore cert.p12

Signera med den förvalda Java-nyckelbehållare:

-alias AIRcert -storetype jks

Signera med en särskild Java-nyckelbehållaren:

-alias AIRcert -storetype jks -keystore certStore.keystore

Signera med Mac OS X-nyckelkedjan:

-alias AIRcert -storetype KeychainStore -providerName Apple

Signera med nyckelbehållaren i Windows-systemet:

-alias cn=AIRCert -storeype Windows-MY

Signera med en maskinvarutoken (information om hur du konfigurerar Java till att använda en token och rätt providerName -värde finns i tillverkarens instruktioner):

-alias AIRCert -storetype pkcs11 -providerName tokenProviderName

Signera utan att bädda in en tidstämpel:

-storetype pkcs12 -keystore cert.p12 -tsa none