(追記) 2023年5月31日(水) 日本時間より、CSRを添付して申請したコードサイニング証明書オーダに対する証明書の発行を終了いたします。 詳細はEVコードサイニング証明書、およびコードサイニング証明書の変更、 およびトークンの取り扱いについて(2023年5月) を参照ください。 |
質問
コードサイニング証明書を取得しました。CSRを提出した場合のインストール手順および、jarsignerでの署名方法を教えてください。
必ずお読みください
|
回答
プラットフォーム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ファイルをバックアップしておきます。
デフォルトではユーザのホームディレクトリに作成されますが、お客様の環境により異なります。
・署名操作
署名作業は以下のサイトをご参照ください。
タイムスタンプを追加する場合は、 -tsa http://timestamp.digicert.com を追加します。
CSR生成、その他の方法
WindowsOSを利用してCSRを生成した場合は、添付されたp7bファイルをダブルクリックして証明書をインストールするなどの方法があります。
ファイルを開いたとき(-----BEGIN PKCS7-----)から(-----END PKCS7-----)で終わっているファイルはp7b(PKCS#7形式)です。
p7bファイル形式以外が必要な場合は、CertCentralにサインインして、オーダー番号をクリックします。
「以下の形式で証明書をダウンロード」ボタンから”その他オプション”を選択します。
”個々の証明書ファイル”から、コードサイニング証明書、中間CA証明書、ルート証明書を取得します。
メモ帳などを開いて(-----BEGIN CERTIFICATE-----)から(-----END CERTIFICATE-----)までをコピーするかダウンロードします。