注: この Java 配備ガイドでは、Java SE 6 update 10 リリースより前にリリースされた機能について説明します。最新情報については、Java Rich Internet Application の開発および配備を参照してください。

署名済みの .cab ファイルを .jar ファイルとして再パッケージ化すると、Java™ Runtime Environment (JRE™) 内で実行するアプレットの署名がなくなる。

症状

署名済みの .cab ファイルを .jar ファイルとして再パッケージすると、Sun JRE で実行中のアプレットが未署名として扱われます。ところが、.cab ファイルとしてパッケージされた同じアプレットは、Microsoft Virtual Machine (VM) では署名済みとして実行されます。

原因

Microsoft では、独自の Authenticode および .cab ファイルテクノロジによるアプレットの署名をサポートしています。署名情報は再パッケージの処理中に失われます。その結果、Sun JRE 実装では .jar ファイルを未署名として扱います。

解決方法

Java Development Kit (JDK) の jarsigner ツールを使って .jar ファイルに署名するには、次の方法を使用します。

  1. VeriSign から Sun Java Signing 証明書を取得するか、Thawte から Java Code Signing 証明書を取得します。また、ほかの認証局 (CA) から類似の証明書を取得することもできます。RSA 証明書は、Verisign や Thawte など、RSA をサポートする証明書発行局 (CA) から購入できます。
  2. keytool コマンドと別名を使用して、証明書をキーストアにインポートします。たとえば、次のコマンドを入力します。
    C:\>C:\jdk1.6.0\bin\keytool -import -alias MyCert -file VSSStanleyNew.cer 
    

  3. jarsigner コマンドを入力して、.jar ファイルに署名します。その際、前の手順で生成されたキーストアの RSA 証明書を使用します。指定された別名が同じであることを確認してください。たとえば、次のコマンドを入力します。
    C:\>C:\jdk1.6.0\bin\jarsigner C:\TestApplet.jar MyCert
    
    上記のコマンドを入力すると、次の応答が表示されます。前の手順でキーストアの資格の生成中に指定したパスフレーズを入力します。
     Enter Passphrase for keystore: 
    
    キーストアの資格の生成中に指定したパスフレーズを入力します。
  4. jarsigner -verify -verbose -certs」を使用して、.jar ファイルを検証します。
    C:>C:\jdk1.6.0\bin\jarsigner -verify -verbose 
                    -certs d:\TestApplet.jar
    
    
             245 Wed Mar 10 11:48:52 PST 2000 META-INF/manifest.mf
             187 Wed Mar 10 11:48:52 PST 2000 META-INF/MYCERT.SF
             968 Wed Mar 10 11:48:52 PST 2000 META-INF/MYCERT.RSA
    smk      943 Wed Mar 10 11:48:52 PST 2000 TestApplet.class
    smk      163 Wed Mar 10 11:48:52 PST 2000 TestHelper.class
    
          X.509, CN=XXXXXXX YYY, OU=Java Software, 
                    O=Sun Microsystems, L=Cupertino, 
                    ST=CA, C=US (mycert)
          X.509, CN=Sun Microsystems, OU=Java Plug-in QA, 
                    O=Sun Microsystems, L=Cupertino, ST=CA, C=US
          X.509, EmailAddress=server-certs@thawte.com, 
                    CN=Thawte Server CA, OU=Certification 
                    Services Division, O=Thawte Consulting cc, 
                    L=Cape Town, ST=Western Cape, C=ZA
    
    
      s = signature was verified
      m = entry is listed in manifest
      k = at least one certificate was found in keystore
      i = at least one certificate was found in identity scope
    
    jar verified.
    

詳細情報

       証明書の取得方法については、VerSign による「Code Signing」、または Thawte による「code-signing certificate support」を参照してください。

       アプレットに署名する方法の詳細については、「RSA 証明書を使用したアプレットの署名」を参照してください。


Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.