ADT-Optionen zum Signieren von Code

ADT verwendet die Java Cryptography Architecture (JCA), um auf private Schlüssel und Zertifikate für die Unterzeichnung von AIR-Anwendungen zuzugreifen. Mit den Unterzeichnungsoptionen werden der Keystore und die privaten Schlüssel und Zertifikate im Keystore angegeben.

Der Keystore muss sowohl den privaten Schlüssel als auch die damit verknüpfte Zertifikatkette enthalten. Wenn das Signaturzertifikat über eine Kette mit einem vertrauenswürdigen Zertifikat auf einem Computer verbunden ist, wird der Inhalt des allgemeinen Namensfeldes des Zertifikats als Name des Herausgebers im Dialogfeld der AIR-Installation angezeigt.

ADT setzt voraus, dass das Zertifikat dem Standard „x509v3“ ( RFC3280 ) entspricht und die Extended Key Usage-Erweiterung mit den korrekten Werten für die Codesignatur enthält. Innerhalb der Zertifikate definierte Einschränkungen werden respektiert und können dazu führen, dass einige Zertifikate nicht für das Signieren von AIR-Anwendungen verwendet werden können.

Hinweis: Unter gegebenen Umständen verwendet ADT die Proxyeinstellungen der Java-Laufzeitumgebung für die Verbindung zu Internetressourcen zum Überprüfen der Zertifikatsperrliste und dem Beziehen von Zeitstempeln. Wenn Sie Probleme bei der Herstellung der Verbindung zu diesen Internetressourcen mit ADT haben und Ihr Netzwerk bestimmte Proxyeinstellungen benötigt, müssen Sie möglicherweise die JRE-Proxyeinstellungen konfigurieren.

Syntax der AIR-Signaturoptionen

Für die Signaturoptionen wird die folgende Syntax verwendet (in einer einzelnen Befehlszeile):

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

-alias Der Aliasname eines Schlüssels im Keystore. Die Angabe eines Aliasnamens ist nicht erforderlich, wenn der Keystore nur ein Zertifikat enthält. Wurde kein Aliasname angegeben, verwendet ADT den ersten Schlüssel im Keystore.

Nicht alle Keystore-Managementanwendungen gestatten die Zuweisung von Aliasnamen zu Zertifikaten. Verwenden Sie zum Beispiel einen Keystore des Windows-Systems, können Sie den eindeutigen Namen des Zertifikats als Aliasnamen verwenden. Mithilfe des Dienstprogramms Java Keytool können Sie die verfügbaren Zertifikate auflisten, um den Aliasnamen festzulegen. So wird zum Beispiele mit der Ausführung des Befehls:

keytool -list -storetype Windows-MY

eine Ausgabe wie die folgende für ein Zertifikat erzeugt:

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

Um auf dieses Zertifikat in der ADT-Befehlszeile zu verweisen, setzen Sie den Aliasnamen auf:

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

Unter Mac OS X ist der Aliasname eines Zertifikats in der Schlüsselkette der Name, der in der Schlüsselbund-Anwendung angezeigt wird.

-storetype Der Typ des Keystores, der durch die Keystore-Implementierung festgelegt wird. Die Keystore-Standardimplementierung der meisten Java-Installationen unterstützt die Typen JKS und PKCS12 . Java 5.0 beinhaltet Unterstützung für den Typ PKCS11 für den Zugriff auf Keystores auf Hardware-Token und für den Typ Keychain für den Zugriff auf den Schlüsselbund von Mac OS X. Java 6.0 beinhaltet Unterstützung für den Typ MSCAPI (unter Windows). Wurden andere JCA-Anbieter installiert und konfiguriert, stehen u. U. noch weitere Keystore-Typen zur Verfügung. Wurde kein Keystore-Typ angegeben, wird der Standardtyp für den JCA-Standardanbieter verwendet.

Keystore-Typ

Keystore-Format

Java-Mindestversion

JKS

Java-Keystore-Datei (.keystore)

1.2

PKCS12

PKCS12-Datei (.p12 oder .pfx)

1.4

PKCS11

Hardware-Token

1.5

KeychainStore

Mac OS X-Schlüsselbund

1.5

Windows-MY oder Windows-ROOT

MSCAPI

1.6

-keystore Der Pfad zur Keystore-Datei für dateibasierte Keystore-Typen.

-storepass Das für den Zugriff auf den Keystore erforderliche Kennwort. Wurde kein Kennwort angegeben, blendet ADT eine Aufforderung zur Kennworteingabe ein.

-keypass Das Kennwort, das für den privaten Schlüssel erforderlich ist, mit dem die AIR-Anwendung signiert wird. Wurde kein Kennwort angegeben, blendet ADT eine Aufforderung zur Kennworteingabe ein.

Hinweis: Wenn Sie ein Kennwort als Teil des ADT-Befehls eingeben, werden die Zeichen des Kennworts im Befehlszeilenverlauf gespeichert. Deshalb wird die Verwendung der -keypass- oder -storepass-Optionen nicht empfohlen, wenn die Sicherheit des Zertifikats wichtig ist. Beachten Sie außerdem, dass bei Auslassung der Kennwortoptionen die Zeichen, die Sie bei der Kennwortaufforderung eingeben, aus denselben Sicherheitsgründen nicht angezeigt werden. Geben Sie einfach das Kennwort ein und drücken Sie die Eingabetaste.

-providerName Der JCA-Anbieter für den angegebenen Keystore-Typ. Wurde kein Anbieter angegeben, verwendet ADT den Standardanbieter für diesen Keystore-Typ.

-tsa Gibt die URL für einen RFC3161 -konformen Zeitstempelserver an, der die digitale Unterschrift mit einem Zeitstempel versieht. Wurde keine URL angegeben, wird der von Geotrust angebotene Standard-Zeitstempelserver verwendet. Wenn die Signatur einer AIR-Anwendung mit einem Zeitstempel versehen wurde, kann die Anwendung auch nach Ablauf des Zertifikats installiert werden, da der Zeitstempel das Zertifikat als gültig zum Zeitpunkt der Unterzeichnung verifiziert.

Kann ADT keine Verbindung zum Zeitstempelserver herstellen, wird die Unterzeichnung abgebrochen und es wird kein Paket erstellt. Geben Sie - tsa none an, um die Vergabe eines Zeitstempels zu deaktivieren. AIR-Anwendungen, die ohne Zeitstempel komprimiert wurden, können jedoch nicht mehr installiert werden, wenn das signierende Zertifikat abgelaufen ist.

Hinweis: Viele Signaturoptionen entsprechend den jeweiligen Optionen des Java-Keytool-Dienstprogramms. Anhand des Dienstprogramms Keytool können Sie Keystores unter Windows überprüfen und verwalten. Das Sicherheitsdienstprogramm von Apple® kann unter Mac OS X für dieselben Zwecke eingesetzt werden.

-provisioning-profile Die Apple iOS-Provisioning-Datei. (Nur für das Komprimieren von iOS-Anwendungen erforderlich.)

Beispiele für Unterzeichnungsoptionen

Signieren mit einer .p12-Datei:

-storetype pkcs12 -keystore cert.p12

Signieren mit dem Standard-Keystore von Java:

-alias AIRcert -storetype jks

Signieren mit einem bestimmten Keystore von Java:

-alias AIRcert -storetype jks -keystore certStore.keystore

Signieren mit einem Mac OS X-Schlüsselbund:

-alias AIRcert -storetype KeychainStore -providerName Apple

Signieren mit einem System-Keystore unter Windows:

-alias cn=AIRCert -storeype Windows-MY

Signieren mit einem Hardware-Token (informieren Sie sich in den Anweisungen des Token-Herstellers zur Konfiguration von Java über die Verwendung des Tokens und den korrekten Wert für providerName ):

-alias AIRCert -storetype pkcs11 -providerName tokenProviderName

Signieren ohne Einbettung eines Zeitstempels:

-storetype pkcs12 -keystore cert.p12 -tsa none