改版履歴 |
版数 | 日付 | 内容 | 担当 |
V.1.0 | 2015/4/1 | 初版 | NII |
V.2.0 | 2018/2/28 | キーストアファイルの形式をJKSからPKCS12に変更、動作環境の変更に伴う修正 | NII |
V.2.1 | 2018/7/9 | タイムスタンプ追加に伴う修正 | NII |
目次
1. コード署名用証明書の利用
1-1. 前提条件
1-2. JKS (Javaキー・ストア) ファイルの作成
1-2-1. 事前準備
1-2-2. PKCS#12ファイルの作成
1-2-3. JKS (Javaキー・ストア) ファイルの作成
1-3. 署名
1-4. コード署名確認作業
1. コード署名用証明書の利用
1-1. 前提条件
OpenSSLコード署名用証明書を使用する場合の前提条件について記載します。適宜、コード署名用証明書をインストールする利用管理者様の環境により、読み替えをお願いします。(本マニュアルではAIR SDK 16.0、JDK 8u161での実行例を記載しております。)
コマンドプロンプト上で実行するコマンドは、「 > 」にて示しています。
前提条件 |
- OpenSSLがインストールされていること
- Adobe AIR SDKもしくはAdobe Flex SDKがインストールされていること
|
CSR作成時は既存の鍵ペアは使わずに、必ず新たにCSR作成用に作成した鍵ペアを利用してください。更新時も同様に、鍵ペアおよびCSRを新たに作成してください。鍵ペアの鍵長は2048bitにしてください。
1-2. JKS (Javaキー・ストア) ファイルの作成
本章ではJKS(Javaキー・ストア)ファイルの作成方法について記述します。
1-2-1. 事前準備
事前準備として、「ルートCA証明書」、「中間CA証明書」、「コード署名用証明書」を取得してください。
1-2-2. PKCS#12ファイルの作成
本項目ではWindowsOS上で任意のフォルダにPKCS#12ファイルを作成する方法を記述します。
以下は、例としてWindows10上での作成方法を記載します。
PKCS#12ファイルの作成 |
- 任意のフォルダ(ここではC:\temp\test2018とします)にて以下の3つのファイルを用意してください。
- 項目「鍵ペアの生成」にて作成した鍵ペアのファイル(servername.key)
- 項目「証明書の申請から取得まで」にて取得したコード署名用証明書(ここではtest.cerとします)
- 項目「1-2-1事前準備」にて用意した「ルートCA証明書」と 「中間CA証明書」を連結させたファイル(ここではchain.cerとします)
- 項目「1-2-1事前準備」にて用意した「ルートCA証明書」ファイル(RootCA.cer)
CAfile に指定する証明書をDER形式からPEM形式に変換します。: ・Security Communication RootCA2の場合 openssl x509 -inform der -in SCRoot2ca.cer -outform pem -out SCRoot2ca.cer
・中間CA証明書SHA-256の場合 openssl x509 -inform der -in nii-odcacssha2.cer -outform pem -out nii-odcacssha2.cer |
コマンドプロンプト上にて上記で取得した「ルートCA証明書」と「中間CA証明書」を下記のコマンドにより、連結させてください。中間CA証明書の下部にルートCA証明書が併記されるファイルとなります。 > type (中間CA証明書のパス) (ルートCA証明書のパス) > (出力するファイル名) |
連結したファイルがPEM形式になっていることを確認してください。 例)PEM形式の証明書 ----BEGIN CERTIFICATE---- MIIEcTCCA1mgAwIBAgIIasWHLdnQB2owDQYJKoZIhvcNAQELBQAwbzELMAkGA1UE BhMCSlAxFDASBgNVBAcMC0FjYWRlbWUtb3BzMSowKAYDVQQKDCFOYXRpb25hbCBJ bnN0aXR1dGUgb2YgSW5mb3JtYXRpY3MxHjAcBgNVBAMMFU5JSSBPcGVyYXRpbmcg Q0EgLSBHMjAeFw0xNTAzMTIwMTA4MDJaFw0xNzA0MTEwMTA4MDJaMHAxCzAJBgNV (中略) LmeW0e/xkkxwdmKv5y5txLlFcp53AZl/vjn3BHp42PFkkTISEmAUiCtQ2A25QDRR RG33laC8E8Tl/SnOA8h95XQtGWm47PrIjXyYtIe0rFousbpIoW8MZw4gDXVQ3485 XEftqwwIMcLNxttJ6i6f9XVyPMRhHy9rdDPseHiXayxcBxJMuw== ----END CERTIFICATE---- |
コマンドプロンプトを開き、ファイルのある任意のフォルダ(ここではC:\temp\test2018)へ移動します。 > set Path=(OpenSSLインストールディレクトリ)\bin ※OpenSSLインストールディレクトリをプログラムを探すディレクトリに指定します > cd (作業ディレクトリ) ←作業ディレクトリ |
移動後、下記のコマンドを入力しPKCS#12ファイルを作成してください。
> openssl pkcs12 -export -chain -inkey (鍵ペアのファイル名) -CAfile (ルートCA証明書と中間CA証明書を連結させたファイル) -in (コード署名用の証明書ファイル名) -out (PKCS#12形式で出力するファイル名) –name (コード署名用証明書のエイリアス名) –caname (ルートCA証明書と中間CA証明書のエイリアス名) |
- 「Enter pass phrase for (鍵ペアファイル):」と表示されますので、鍵ペアファイルにアクセスさせるための、パスフレーズを入力してください。
- 「Enter Export Password:」と表示されますので、PKCS#12形式のファイルを保護するためのアクセスPINとして任意の文字列を入力してください。
- 「Verifying - Enter Export Password:」と表示されますので、確認のため、同じアクセスPINを再入力してください。
- OpenSSLのコマンドが終了しますので、 PKCS#12ファイルが作業ディレクトリに作成されていることを確認してください。
|
1-2-3. JKS (Javaキー・ストア) ファイルの作成
本項目ではWindowsOS上で任意のフォルダに、JKS (Javaキー・ストア) ファイルを作成する方法を記述します。以下は、例としてWindows10上での作成方法を記載します。
JKS(Javaキー・ストア)ファイルの作成 |
- 任意のフォルダ(ここではC:\temp\test2018とします)にて以下のファイルを用意してください。
項目「1-5-2 PKCS#12ファイルの作成」にて作成したPKCS#12ファイル(test.p12)
コマンドプロンプトを開き、ファイルのある任意のフォルダ(ここではC:\temp\test2018)へ移動します。 > set Path=(JDKインストールディレクトリ)\bin ※JDKインストールディレクトリをプログラムを探すディレクトリに指定します > cd (作業ディレクトリ) ←作業ディレクトリ |
移動後、下記のコマンドを入力しJKS (Javaキー・ストア) ファイルを作成してください。 > keytool -importkeystore -srckeystore (PKCS#12ファイル名) -srcstoretype pkcs12 -destkeystore (作成したいキーストアファイル名) -deststoretype pkcs12 -destkeypass (キーストアに設定したいパスワード) -srcalias ( PKCS#12ファイルで利用されているエイリアス名) -destalias (登録したいエイリアス名) |
※ PKCS#12ファイルで利用されているエイリアス名(別名)は以下コマンドでご参照ください。
keytool –v –list –keystore (PKCS#12ファイル名) |
- 「出力先キーストアのパスワードを入力してください:」と表示されますので、JKS (Javaキー・ストア) ファイルを保護するためのパスワードとして任意の文字列を入力してください。
- 「新規パスワードを再入力してください:」と表示されますので、確認のため、同じパスワードを再入力してください。
- 「出力先キーストアのパスワードを入力してください」と表示されますので、PKCS#12ファイルのアクセスPINを入力してください。
- keytoolのコマンドが終了しますので、 JKS (Javaキー・ストア) ファイルが作業ディレクトリに作成されていることを確認してください。
|
1-3. 署名
本章では、Adobe AIR形式のファイルにWindowsOS上にて、デジタル署名をする方法について記述します。
Adobe AIR形式のファイルへの署名はファイル作成時にAdobe AIR SDK、もしくはAdobe Flex SDK内のadtコマンドを利用して署名します。
併せてタイムスタンプを付与する場合と2通りの手順がありますので適した方をご選択ください。
署名作業(併せてタイムスタンプを付与しない場合) |
- 同一フォルダ上にAdobe AIR形式ファイル作成に必要な署名されるアプリケーション記述ファイル(test.xml)、アプリケーションの使用する任意のファイルのパス名(test.swf)と、項目1-5-3にて 作成したJKS (Javaキー・ストア) ファイルを置きます。
コマンドプロンプトを実行し、署名対象ファイルのあるフォルダへ移動します。 > set Path=(Adobe AIR SDKもしくはAdobe Flex SDK);(JDKインストールフォルダ)\bin ※JDKインストールフォルダをプログラムを探すフォルダに指定します > cd (作業ディレクトリ) ←作業ディレクトリ |
フォルダ移動後、Adobe AIR形式のファイル作成と同時に、作成ファイルへの署名を下記のコマンドにて実施してください。 > adt -package -alias (キーストア内の証明書のエイリアス名) -keystore (キーストアファイル名) -storetype pkcs12 -tsa none (作成するAdobe AIRファイル名) (署名されるアプリケーション記述ファイルのパス名 ) (トップレベルHTMLファイルのパス名 ) |
- 「password:」と表示されますので、JKS (Javaキー・ストア) ファイルを保護するパスフレーズを入力してください。
- keytoolのコマンドが終了しますので、 対象のAdobe AIR形式ファイルが作業ディレクトリに作成されていることを確認してください。
|
署名作業(併せてタイムスタンプを付与する場合) |
- 同一フォルダ上にAdobe AIR形式ファイル作成に必要な署名されるアプリケーション記述ファイル(test.xml)、アプリケーションの使用する任意のファイルのパス名(test.swf)と、項目1-5-3にて 作成したJKS (Javaキー・ストア) ファイルを置きます。
コマンドプロンプトを実行し、署名対象ファイルのあるフォルダへ移動します。 > set Path=(Adobe AIR SDKもしくはAdobe Flex SDK);(JDKインストールフォルダ)\bin ※JDKインストールフォルダをプログラムを探すフォルダに指定します > cd (作業ディレクトリ) ←作業ディレクトリ |
フォルダ移動後、Adobe AIR形式のファイル作成と同時に、作成ファイルへの署名を下記のコマンドにて実施してください。 > adt -package -alias (キーストア内の証明書のエイリアス名) -keystore (キーストアファイル名) -storetype pkcs12 -tsa (タイムスタンプURL) ※タイムスタンプURLは登録担当者に問い合わせてください |
★キャプチャ差替要※出力結果を表示(佐々木未確認) - 「password:」と表示されますので、JKS (Javaキーストア) ファイルを保護するパスフレーズを入力してください。
★キャプチャ差替要※これと同じでパスワードが表示される画面を表示(佐々木未確認)
- keytoolのコマンドが終了しますので、 対象のAdobe AIR形式ファイルが作業ディレクトリに作成されていることを確認してください。
※実行結果は佐々木未確認です |
1-4. コード署名確認作業
本章では、デジタル署名したAdobe AIR形式のファイルのコード署名確認作業について記述します。
署名確認作業(タイムスタンプを付与した場合) |
タイムスタンプを付与しない場合と同様の手段で確認できないため、佐々木未確認です。プロパティから確認することはできないかと考えています。 |