ADT-opties voor codeondertekening

ADT gebruikt JCA (Java Cryptography Architecture) om toegang te krijgen tot persoonlijke sleutels en certificaten voor het ondertekenen van AIR-toepassingen. Met de ondertekeningsopties worden het sleutelarchief en de persoonlijke sleutel en het certificaat in dat sleutelarchief opgegeven.

Het sleutelarchief moet zowel de persoonlijke sleutel als de bijbehorende certificaatketen bevatten. Als het handtekeningcertificaat via een certificaatketen is gekoppeld aan een vertrouwd certificaat op een computer, wordt de inhoud van het veld algemene naam van het certificaat als de uitgeversnaam weergegeven in het dialoogvenster van de AIR-installatie.

Voor ADT moet het certificaat aan de x509v3-standaard voldoen ( RFC3280 ) en de EKU-uitbreiding (Extended Key Usage) met de juiste waarden voor de ondertekening van code bevatten. Beperkingen in het certificaat worden gerespecteerd, waardoor bepaalde certificaten niet kunnen worden gebruikt voor het ondertekenen van AIR-toepassingen.

Opmerking: ADT gebruikt de proxy-instellingen van de Java-runtimeomgeving (indien van toepassing) om verbinding te maken met internetbronnen voor het controleren van certificaatintrekkingslijsten en het verkrijgen van tijdstempels. Als u bij het gebruik van ADT problemen ondervindt wanneer verbinding wordt gemaakt met deze internetbronnen en er voor uw netwerk specifieke proxy-instellingen zijn vereist, kan het zijn dat u de JRE-proxy-instellingen moet configureren.

Syntaxis van AIR-ondertekeningsopties

De ondertekeningsopties maken gebruik van de volgende syntaxis (op één opdrachtregel):

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

-alias De alias van een sleutel in het sleutelarchief. U hoeft geen alias op te geven wanneer een sleutelarchief slechts één certificaat bevat. Als er geen alias is opgegeven, wordt de eerste sleutel in het sleutelarchief gebruikt.

Niet in alle toepassingen voor sleutelarchiefbeheer mag een alias worden toegewezen aan certificaten. Als u het sleutelarchief van Windows gebruikt, wordt bijvoorbeeld de DN-naam van het certificaat als alias gebruikt. Met het Java-hulpprogramma Keytool kunt u de beschikbare certificaten weergeven zodat u de alias kunt bepalen. Als u bijvoorbeeld deze opdracht uitvoert:

keytool -list -storetype Windows-MY

wordt soortgelijke uitvoer als hieronder weergegeven voor een certificaat:

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

Als u in de ADT-opdracht op de opdrachtregel naar dit certificaat wilt verwijzen, stelt u de alias in op:

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

In Mac OS X is de alias van een certificaat in de Keychain de naam die wordt weergegeven in de toepassing Keychain Access.

-storetype Het type sleutelarchief. Dit wordt bepaald door de implementatie van het sleutelarchief. De standaard sleutelarchiefimplementatie die in de meeste installaties van Java is opgenomen, ondersteunt de typen JKS en PKCS12 . Java 5.0 biedt ondersteuning voor het type PKCS11 , voor toegang tot sleutelarchieven op hardwaretokens, en het type Keychain , voor toegang tot de KeyChain van Mac OS X. Java 6.0 biedt ondersteuning voor het type MSCAPI (in Windows). Als er andere JCA-providers zijn geïnstalleerd en geconfigureerd, kunnen er meer sleutelarchieftypen beschikbaar zijn. Als er geen sleutelarchieftype is opgegeven, wordt het standaardtype voor de standaard JCA-provider gebruikt.

Archieftype

Indeling van sleutelarchief

Minimale Java-versie

JKS

Java-sleutelarchiefbestand (.keystore)

1.2

PKCS12

PKCS12-bestand (.p12 of .pfx)

1.4

PKCS11

Hardwaretoken

1.5

KeyChain-archief

KeyChain van Mac OS X

1.5

Windows-MY of Windows-ROOT

MSCAPI

1.6

-keystore Het pad naar het sleutelarchiefbestand voor archieftypen die op bestanden zijn gebaseerd.

-storepass Het wachtwoord voor toegang tot het sleutelarchief. Als u dit niet opgeeft, vraagt ADT om het wachtwoord.

-keypass Het wachtwoord voor toegang tot de persoonlijke sleutel waarmee de AIR-toepassing wordt ondertekend. Als u dit niet opgeeft, vraagt ADT om het wachtwoord.

Opmerking: als u een wachtwoord opgeeft als onderdeel van de ADT-opdracht, worden de wachtwoordtekens opgeslagen in de geschiedenis van de opdrachtregel. Om die reden wordt het gebruik van de opties -keypass of -storepass niet aanbevolen wanneer de beveiliging van het certificaat belangrijk is. Wanneer u de wachtwoordopties weglaat, worden de tekens die u typt niet weergegeven (om dezelfde beveiligingsredenen). U kunt eenvoudig het wachtwoord typen en op Enter drukken.

-providerName De JCA-provider voor het opgegeven sleutelarchieftype. Als u geen provider opgeeft, wordt de standaardprovider voor dat type sleutelarchief gebruikt.

-tsa De URL van een RFC3161 -compatibele tijdstempelserver om een tijdstempel voor de digitale handtekening te verkrijgen. Als u geen URL opgeeft, wordt een standaard tijdstempelserver van Geotrust gebruikt. Wanneer de handtekening van een AIR-toepassing een tijdstempel heeft, kan de toepassing nog steeds worden geïnstalleerd nadat het handtekeningcertificaat is verlopen, omdat het tijdstempel aangeeft dat het certificaat geldig was op het moment van ondertekening.

Als ADT geen verbinding kan maken met de tijdstempelserver, wordt het ondertekenen geannuleerd en wordt geen pakket gemaakt. Geef - tsa none op om het ophalen van een tijdstempel uit te schakelen. Een AIR-toepassing in een pakket zonder tijdstempel kan echter niet worden geïnstalleerd nadat het handtekeningcertificaat is verlopen.

Opmerking: veel ondertekeningsopties zijn gelijk aan dezelfde optie in het Java-hulpprogramma Keytool. Met het hulpprogramma Keytool kunt u sleutelarchieven in Windows controleren en beheren. In Mac OS X kunt u hiervoor het beveiligingsprogramma van Apple® gebruiken.

-provisioning-profile Het Apple iOS-inrichtingsbestand. (Alleen vereist voor het verpakken van iOS-toepassingen.)

Voorbeelden van ondertekeningsopties

Ondertekenen met een .p12-bestand:

-storetype pkcs12 -keystore cert.p12

Ondertekenen met het standaard sleutelarchief van Java:

-alias AIRcert -storetype jks

Ondertekenen met een specifiek sleutelarchief van Java:

-alias AIRcert -storetype jks -keystore certStore.keystore

Ondertekenen met de KeyChain van Mac OS X:

-alias AIRcert -storetype KeychainStore -providerName Apple

Ondertekenen met het sleutelarchief van Windows:

-alias cn=AIRCert -storeype Windows-MY

Ondertekenen met een hardwaretoken (raadpleeg de instructies van de fabrikant van het token om Java te configureren voor het gebruik van het token en voor de juiste waarde van providerName ):

-alias AIRCert -storetype pkcs11 -providerName tokenProviderName

Ondertekenen zonder een tijdstempel:

-storetype pkcs12 -keystore cert.p12 -tsa none