DigiCert証明書の正規代理店株式会社アールエムエス
DigiCertコードサイニング証明書 サポート
180か国以上・80,000以上の団体が利用
  1. ホーム
  2. コードサイニング証明書
  3. サポート
  4. EVコードサイニング証明書 Java Code署名方法

EVコードサイニング証明書 Java Code署名方法

本ページに記載されている手順は環境により異なる場合があり、実際の動作を保証するものではありません。
アプリケーションやツールなどの仕様や設定手順等でご不明な点がある場合は、それらのマニュアルをご確認いただくか、提供元にご連絡ください。
※この手順によって生じた影響や結果について、弊社では一切の責任は負いかねます。

CLIコマンドラインでJarsignerを使いJava .jarファイルに署名する

  1. 以下の記述を含む eToken.cfg ファイルを作成し、署名に使うマシンのJDK binフォルダに保存します。
    (例 C:\Program Files\Java\jdk1.8.0_91\bin)
    name=eToken library=c:\WINDOWS\system32\eTPKCS11.dll
  2. エクスプロラでJDKに入ります。
  3. JDKフォルダ内のbinフォルダをシフトキーを押しながら右クリックし、「コマンドウインドウをここで開く」を選択します。

    Open Command Prompt in Windows Explorer

  4. 以下の手順で、EVコードサイニング証明書の内容を確認します。
    1. トークンをマシンに挿入します。
    2. コマンドプロンプトで以下のコマンドを実行します。
      「キーストアのパスワード」にはUSBトークンで設定したパスワードを入力してください。
      C:\> keytool -list -keystore NONE -storetype PKCS11 -providerclass sun.security.pkcs11.SunPKCS11 -providerArg ./eToken.cfg
      	キーストアのパスワードを入力してください:
    3. 以下のような内容が表示されます。
      キーストアのタイプ: PKCS11
      	キーストア・プロバイダ: SunPKCS11-eToken
      
      	キーストアには1エントリが含まれます
      
      	RMS Co., Ltd./xxxxxxxxxxxxxxxxxx/00000000000743710, PrivateKeyEntry,
      	証明書のフィンガプリント(SHA1):
      	XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX
      上の例では RMS Co., Ltd./xxxxxxxxxxxxxxxxxx/00000000000743710 が、以下の .jar ファイルに署名するコマンドで利用する「証明書のエイリアス」名です。
  5. 「証明書のエイリアス」名を使って、以下のコマンドを実行します。
    「キーストアのパスワード」にはUSBトークンで設定したパスワードを入力してください。
    C:\> jarsigner -tsa http://timestamp.digicert.com -verbose -keystore NONE -storetype PKCS11 -providerClass sun.security.pkcs11.SunPKCS11 -providerArg ./eToken.cfg "C:\path\to\file.jar" "RMS Co., Ltd./xxxxxxxxxxxxxxxxxx/00000000000743710
    キーストアのパスワードを入力してください:
  6. 署名が正しく行われた場合は以下のように表示されます。
    更新中: META-INF/MANIFEST.MF
    追加中: META-INF/RMS_CO__.SF
    シグネチャ・タイムスタンプのリクエスト
    TSAの場所: http://timestamp.digicert.com
    追加中: META-INF/RMS_CO__.RSA
    署名中: A.class
    jarは署名されました。

トラブルシューティング

コマンドを実行してもパスワード入力要求がない
トークンがマシンに正しく接続されていますか?トークンを接続しなおしてください。
"jarsigner error: java.lang.ClassNotFoundException: sun.security.pkcs11.SunPKCS11"が表示される
64-bitのJDKを利用しているために発生するエラーです。32-bitのJDKをダウンロードし利用してください。
"jarsigner error: java.lang.RuntimeException: keystore load: load failed"が表示される
パスワードが正しくない場合表示されます。トークンのパスワードを入力してください。
"keytool error: java.security.KeyStoreException: PKCS11 not found"が表示される
これは eToken.cfg ファイルが正しく認識できない場合に発生します。 eToken.cfg ファイルが存在するか、dll ファイルが指定した場所(例:library=c:\WINDOWS\system32\eTPKCS11.dll)に存在するかを確認してください。
トークンの初期設定が正しく行われていない可能性もあります。トークンの初期設定(1.SafeNet AuthenticationClientのインストール)を参照し再設定してください。

jarsigner -verifyを使って署名の確認

  1. 以下のコマンドを実行することで .jar ファイルに署名されていることを確認できます。
    C:\> jarsigner -verify -verbose -certs c:\path\to\your\file.jar
デジタル証明書ニュース
digicert.comトピックス&ニュース