...
事前準備として、「ルートCA証明書」、「中間CA証明書」、「コード署名用証明書」を取得してください。
...
PKCS#12ファイルの作成 |
- 任意のフォルダ(ここではC:\temp\test2018とします)にて以下の3つのファイルを用意してください。
- 項目「2-3-1 鍵ペアの生成」にて生成した鍵ペアのファイル項目「鍵ペアの生成」にて生成した鍵ペアのファイル(servername.key)
- 項目「2-4.証明書の申請から取得まで」にて取得したコード署名用証明書項目「証明書の申請から取得まで」にて取得したコード署名用証明書(ここでは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\test2015)へ移動します。 > 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ファイルが作業ディレクトリに生成されていることを確認してください。
|
...
署名作業 |
- 同一フォルダ上に署名するAndroid用(.apk形式)のファイル(test.apk)と項目2と項目1-52-3にて 作成したJKS 3にて作成したJKS (Javaキーストア) ファイルを置きます。
コマンドプロンプトを実行し、署名対象ファイルのあるフォルダへ移動します。 > set Path=(JDKインストールディレクトリ)\bin ※JDKインストールディレクトリをプログラムを探すディレクトリに指定します > cd (作業ディレクトリ) ←作業ディレクトリ |
フォルダ移動後、署名したいAndroid用(.apk形式)のファイル(ここではtest.apk)に対して下記のコマンドにて署名を実施してください。 jarsigner -keystore (キーストアファイル名) (署名したいAndroid用(.apk形式)のファイル名) (キーストア内の証明書のエイリアス名) |
「キーストアのパスワードを入力してください:」と表示されますので、JKS (Javaキーストア) ファイルを保護するパスフレーズを入力してください。
「jarは署名されました。」表示され、keytoolのコマンドが終了しますので、対象のAndroid用(.apk形式)ファイルが更新されていることを確認してください。
※以下警告はタイムスタンプが付与されていないため、表示されているものです。 署名状況には問題ありません。警告内の署名書証明書の有効期限は証明書、証明書毎に異なります。 警告: -tsaまたは-tsacertが指定されていないため、このjarにはタイムスタンプが付加されていません。 タイムスタンプがないと、署名者証明書の有効期限(20YY-MM-)後または将来の失効日後に、 ユーザーはこのjarを検証できない可能性があります。
|
...