ADT では、Java Cryptography Architecture(JCA)を利用して、AIR アプリケーションへの署名に使用する秘密キーと証明書にアクセスします。署名オプションによって、キーストアおよびそのキーストア内の秘密キーと証明書を特定します。
キーストアには、秘密キーおよび関連付けられた証明書チェーンが含まれている必要があります。署名証明書がコンピューター上の信頼できる証明書にチェーン化されると、証明書の共通名フィールドの内容が発行者名として AIR インストールダイアログに表示されます。
AIR 署名オプションのシンタックス
署名オプションは次のシンタックスを(1 つのコマンドラインで)使用します。
-alias aliasName
-storetype type
-keystore path
-storepass password1
-keypass password2
-providerName className
-tsa url
-alias
:キーストア内にあるキーのエイリアスです。キーストアに含まれている証明書が 1 つだけの場合、エイリアスを指定する必要はありません。エイリアスを指定しない場合、ADT ではキーストアの最初のキーが使用されます。
キーストア管理アプリケーションによっては、証明書にエイリアスを割り当てることができません。例えば、Windows システムのキーストアを使用している場合は、証明書の識別名をエイリアスとして使用します。エイリアスを指定できるように、Java Keytool ユーティリティを使用して使用可能な証明書を一覧表示することができます。例えば、次のコマンドを実行します。
keytool -list -storetype Windows-MY
このコマンドでは、証明書に関する次のような出力が生成されます。
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
ADT コマンドラインでこの証明書を参照するには、エイリアスを次のように設定します。
CN=TestingCert,OU=QE,O=Adobe,C=US
Mac OS X では、Keychain での証明書のエイリアスは、Keychain Access アプリケーションに表示される名前です。
-storetype
:キーストアのタイプです。キーストアの実装によって決まります。Java のほとんどのインストールに付属しているデフォルトのキーストア実装では、
JKS
タイプおよび
PKCS12
タイプがサポートされています。Java 5.0 には、ハードウェアトークンのキーストアにアクセスするための
PKCS11
タイプと、Mac OS X キーんチェーンにアクセスするための
Keychain
タイプのサポートが含まれています。Java 6.0 には、
MSCAPI
タイプ(Windows で使用)のサポートが含まれています。他の JCA プロバイダーがインストールされ、構成されている場合は、さらに別のキーストアタイプを使用できることがあります。キーストアタイプを指定しない場合、デフォルトの JCA プロバイダーのデフォルトタイプが使用されます。
ストアタイプ
|
キーストア形式
|
Java の必要最低バージョン
|
JKS
|
Java キーストアファイル(.keystore)
|
1.2
|
PKCS12
|
PKCS12 ファイル(.p12 または .pfx)
|
1.4
|
PKCS11
|
ハードウェアトークン
|
1.5
|
KeychainStore
|
Mac OS X キーチェーン
|
1.5
|
Windows-MY または Windows-ROOT
|
MSCAPI
|
1.6
|
-keystore
:ファイルベースのストアタイプのキーストアファイルへのパスです。
-storepass
:キーストアへのアクセスに必要なパスワードです。指定しない場合、パスワードの入力を求めるプロンプトが表示されます。
-keypass
:AIR アプリケーションへの署名に使用する秘密キーへのアクセスに必要なパスワードです。指定しない場合、パスワードの入力を求めるプロンプトが表示されます。
注意:
ADT コマンドの一部としてパスワードを入力する場合、パスワードの文字列はコマンドラインの履歴に保存されます。このため、証明書のセキュリティが重要となる場合には、-keypass または -storepass オプションの使用は推奨されません。また、パスワードオプションを省略した場合は、パスワードプロンプトで入力する文字列が表示されないことに注意してください(証明書のセキュリティを保護するため)。パスワードを入力し、Enter キーを押すだけです。
-providerName
:指定したキーストアタイプの JCA プロバイダーです。指定しない場合、ADT ではそのキーストアタイプのデフォルトプロバイダーが使用されます。
-tsa
:電子署名にタイムスタンプを付与する
RFC3161
準拠のタイムスタンプサーバーの URL を指定します。URL を指定しない場合、GeoTrust が提供するデフォルトのタイムスタンプサーバーが使用されます。AIR アプリケーションの署名にタイムスタンプを付与すると、署名時にその証明書が有効であったことがタイムスタンプによって保証されるので、署名証明書の有効期限が切れた後でもアプリケーションをインストールできます。
ADT がタイムスタンプサーバーに接続できない場合、署名はキャンセルされ、パッケージは生成されません。タイムスタンプの付与を無効にするには、
-
tsa none
を指定します。ただし、タイムスタンプなしでパッケージ化された AIR アプリケーションは、署名証明書の有効期限が切れるとインストールできなくなります。
注意:
署名オプションの多くは、Java Keytool ユーティリティの同様のオプションに相当します。Keytool ユーティリティを使用すると、Windows でキーストアを調査することも、管理することもできます。Mac OS X での同じ目的のために、Apple® セキュリティユーティリティを使用することもできます。
-provisioning-profile
:Apple iOS プロビジョニングファイルです(iOS アプリケーションをパッケージ化する場合のみ必須)。
署名オプションの例
.p12 ファイルを使用した署名
-storetype pkcs12 -keystore cert.p12
デフォルトの Java キーストアを使用した署名
-alias AIRcert -storetype jks
特定の Java キーストアを使用した署名
-alias AIRcert -storetype jks -keystore certStore.keystore
Mac OS X キーチェーンを使用した署名
-alias AIRcert -storetype KeychainStore -providerName Apple
Windows システムのキーストアを使用した署名
-alias cn=AIRCert -storeype Windows-MY
ハードウェアトークンを使用した署名(トークンを使用するように Java を構成する方法と正しい
providerName
値については、トークンの製造メーカーの説明書を参照してください)
-alias AIRCert -storetype pkcs11 -providerName tokenProviderName
タイムスタンプの埋め込みなしでの署名
-storetype pkcs12 -keystore cert.p12 -tsa none