質問
コードサイニング証明書を取得しました。CSRを提出した場合のインストール手順および、jarsignerでの署名方法を教えてください。
必ずお読みください
- 本文書の内容によって生じた結果の影響について、弊社では一切の責任を負いかねますこと予めご了承ください。
- 本文書は基本的な構成を想定しています。お客様のシステム環境や構成、設定状況などにより、手順や画面表示が変わることがあります。
- 本文書の手順で動作しない場合やアプリケーション及びツールの仕様及び設定手順等に関する不明な点は、当社ではサポートできませんので、製品のマニュアルをお読みいただくか、開発元にご確認ください。
|
回答
CSRを貼り付けてコードサイニング証明書を申請した場合
プラットフォームSun Javaを選択した場合はCSRファイルが必須です。
Sun Java以外プラットフォームでCSRファイルを生成して申請した場合は、CSRを生成した環境へインストールします。
■ CSR生成でKeytoolを利用し、発行通知メール(p7b)ファイルを利用する
発行通知メールに添付されたp7bファイルは、ルート証明書、中間CA証明書、コードサイニング証明書の3つがマージされています。
そのまま以下のようにkeytoolコマンドでインストールすることが可能です。
保存したファイルがあるフォルダーで以下のコマンドを実行します。
エイリアス(alias)名は、Keystore内にある「PrivateKeyEntry(秘密鍵ファイルのエントリー)」を指すエイリアス名を指定します。
# keytool -import -trustcacerts -alias [エイリアス名] -keystore [KeyStore名] -file [p7bファイル名]
キーストアのパスワード:パスワード
エイリアス名の鍵パスワードを入力して下さい:エイリアス名に対するパスワード
※パスワードはkeytstoreファイルを生成時に、同一にすることもできますので上記の問いが1つの場合もあります。
■ CSR生成でKeytoolを利用し、ルート証明書、中間CA証明書、コードサイニング証明書をそれぞれインポートする
CertCentralにサインインして、オーダー番号をクリックします。
「以下の形式で証明書をダウンロード」ボタンから”その他オプション”を選択します。
”個々の証明書ファイル”から、コードサイニング証明書、中間CA証明書、ルート証明書を取得します。
メモ帳などを開いて(-----BEGIN CERTIFICATE-----)から(-----END CERTIFICATE-----)までをコピーするかダウンロードします。
ダウンロードすると自動的にファイル名称が拡張子(pem)となります。
テキストとしてご利用いただく場合は.txtに変更していただいて問題ありません。
- ルート証明書、中間証明書のインストール
保存したファイルがあるフォルダーで以下のコマンドを実行します。
- ルート証明書をインストールします。
(ルート証明書のインストールが不要な場合もあります)
エイリアス(alias)名は任意につけることが可能です(Keystore内での重複はできません)。
# keytool -import -trustcacerts -alias DigiCertRoot -keystore [キーストア名] -file [ルート証明書ファイル]
※インポートの際にはKeyStoreのパスワードを求められる場合があります。
「証明書は、キーストア内にすでに存在します。」と表示される場合は、「Yes」または「Y}と入力してください。
- 中間CA証明書をインストールします。
エイリアス(alias)名は任意につけることが可能です(Keystore内での重複はできません)。
# keytool -import -trustcacerts -alias DigiCertCA -keystore [キーストア名] -file [中間CA証明書ファイル]
※インポートの際にはKeyStoreのパスワードを求められる場合があります。
「証明書は、キーストア内にすでに存在します。」と表示される場合は、「Yes」または「Y}と入力してください。
- コードサイニング証明書のインストール
保存したファイルがあるフォルダーで以下のコマンドを実行します。
エイリアス(alias)名は、Keystore内にある「PrivateKeyEntry(秘密鍵ファイルのエントリー)」を指すエイリアス名を指定します。
# keytool -import -trustcacerts -alias [エイリアス名] -keystore [キーストア名] -file [コードサイニング証明書ファイル]
キーストアのパスワード:パスワード
エイリアス名の鍵パスワードを入力して下さい:エイリアス名に対するパスワード
※パスワードはkeytstoreファイルを生成時に、同一にすることもできますので上記の問いが1つの場合もあります。
keytoolエラー: java.lang.Exception: 応答から連鎖を確立できませんでした
keytool error: java.lang.Exception: Failed to establish chain from reply
上記はルート証明書、中間CA証明書が正しくkeystoreにインストールされていない場合が考えられます。
- インストール結果の確認
以下のコマンドでKeyStoreにインストールされた内容を確認できます。
# keytool -list -v -keystore [キーストア名]
キーストアのパスワードを入力してください:パスワード
証明書の有効期限が発行された証明書と異なる場合、または発行先と発行者が同じ場合はコードサイニング証明書のインストールが成功していない場合があります。
エイリアス名またはKeystore内にPrivateKeyEntryが存在しているか確認してください。
PrivateKeyEntryがKeystore内に無い場合は、新しいKeystoreから作成したCSRにて無償の再発行をしてください。
- キーペアファイルのバックアップ
ハードウェア障害などに備え、Keystoreファイルをバックアップしておきます。
デフォルトではユーザのホームディレクトリに作成されますが、お客様の環境により異なります。
- 署名操作
署名作業は以下のサイトをご参照ください。
[CertCentral] Java 用コードサイニング証明書のCSR 生成/インストール/署名方法
https://knowledge.digicert.com/ja/jp/solution/SOT0012.html
タイムスタンプを追加する場合は、 -tsa http://timestamp.digicert.com を追加します。
■ CSR生成、その他の方法
WindowsOSを利用してCSRを生成した場合は、添付されたp7bファイルをダブルクリックして証明書をインストールするなどの方法があります。
ファイルを開いたとき(-----BEGIN PKCS7-----)から(-----END PKCS7-----)で終わっているファイルはp7b(PKCS#7形式)です。
p7bファイル形式以外が必要な場合は、CertCentralにサインインして、オーダー番号をクリックします。
「以下の形式で証明書をダウンロード」ボタンから”その他オプション”を選択します。
”個々の証明書ファイル”から、コードサイニング証明書、中間CA証明書、ルート証明書を取得します。
メモ帳などを開いて(-----BEGIN CERTIFICATE-----)から(-----END CERTIFICATE-----)までをコピーするかダウンロードします。