3 .\" Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved.
4 .\" DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 .\"
6 .\" This code is free software; you can redistribute it and/or modify it
7 .\" under the terms of the GNU General Public License version 2 only, as
8 .\" published by the Free Software Foundation.
9 .\"
10 .\" This code is distributed in the hope that it will be useful, but WITHOUT
11 .\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 .\" FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
13 .\" version 2 for more details (a copy is included in the LICENSE file that
14 .\" accompanied this code).
15 .\"
16 .\" You should have received a copy of the GNU General Public License version
17 .\" 2 along with this work; if not, write to the Free Software Foundation,
18 .\" Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
19 .\"
20 .\" Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
21 .\" or visit www.oracle.com if you need additional information or have any
22 .\" questions.
23 .\"
24 .\"
25 .TH jarsigner 1 "2006 年 9 月 4 日" "Java SE 6" "ユーザーコマンド"
26 .SH "名前"
27 jarsigner \- JAR 署名および検証ツール
28 .LP
29 .RS 3
30
31 .LP
32 .LP
33 Java ARchive (JAR) ファイルの署名を生成し、署名付き JAR ファイルの署名を検証します。
34 .LP
35 .RE
36 .SH "形式"
37 .B jarsigner
38 [
39 .BI options
40 ]
41 jar-file alias
42 .br
43 .B jarsigner
44 .BI \-verify
45 [
336 .LP
337 キーストアには、Sun が提供する組み込みのデフォルトの実装があります。これは、
338 JKS という名前の独自のキーストアタイプ (形式) を利用するもので、キーストアを
339 ファイルとして実装しています。この実装では、個々の非公開鍵は個別のパスワード
340 によって保護され、キーストア全体の完全性も (非公開鍵とは別の) パスワードに
341 よって保護されます。
342 .LP
343
344 キーストアの実装は、プロバイダベースです。具体的には、
345 .I KeyStore
346 クラスが提供するアプリケーションインタフェースは、Service Provider Interface (SPI)
347 という形で実装されています。つまり、対応する
348 .I KeystoreSpi
349 抽象クラス (これも
350 .I java.security
351 パッケージに含まれている) があり、このクラスが Service Provider Interface の
352 メソッドを定義しています。これらのメソッドは、「プロバイダ」が実装しなければなりま
353 せん。ここで、「プロバイダ」とは、Java Security API によってアクセス可能なサービス
354 のサブセットに対し、その固定実装を提供するパッケージまたはパッケージの集合の
355 ことです。したがって、キーストアの実装を提供するには、「Java 暗号化アーキテク
356 チャ用プロバイダの実装方法」(http://java.sun.com/javase/6/docs/technotes/guides/security/HowToImplAProvider.html) のページで説明しているように、クライアントがプロバイダを実装し、
357 .I KeystoreSpi
358 サブクラスの実装を提供する必要があります。
359 .LP
360 アプリケーションでは、
361 .I KeyStore
362 クラスが提供する
363 .B getInstance
364 ファクトリメソッドを使うことで、さまざまなプロバイダから異なる「タイプ」のキーストアの
365 実装を選択できます。キーストアのタイプは、キーストア情報の格納形式とデータ形式、
366 およびキーストア内の非公開鍵とキーストア自体の完全性を保護するために使われる
367 アルゴリズムを定義します。異なるタイプのキーストアの実装には、互いに互換性は
368 ありません。keytool、jarsigner、および policytool の各ツールは、
369 .B KeyStore
370 が提供する共通のアプリケーションインタフェースだけを使っているので、任意の
371 タイプのキーストアで使用できます。
372 .LP
373 .B keytool
374 は、ファイルベースのキーストア実装に対して機能します。
375 .B keytool
376 は、コマンド行で渡されたキーストアの位置をファイル名として扱い、
438 .LP
439 .LP
440 デフォルトのキーストアタイプは jks (Sun が提供する独自のタイプのキーストアの
441 実装) です。これは、セキュリティプロパティファイル内の次の行によって指定されて
442 います。
443 .LP
444 .RS 5
445 .B keystore.type=jks
446 .RE
447 .LP
448 注: キーストアタイプの指定では、大文字と小文字は区別されません。たとえば、「JKS」と「jks」は同じものとみなされます。
449 .LP
450 各ツールでデフォルト以外のキーストアの実装を使用するには、上の行を変更して
451 別のキーストアのタイプを指定します。
452 たとえば、pkcs12 と呼ばれるタイプのキーストアの実装を提供している
453 プロバイダパッケージを使用するには、上の行を次のように変更します。
454 .LP
455 .B keystore.type=pkcs12
456 .LP
457 PKCS#11 プロバイダパッケージを使用する場合、その詳細については、「Java PKCS#11 Reference Guide」(
458 http://java.sun.com/javase/6/docs/technotes/guides/security/p11guide.html#keytooljarsigner)
459 にある
460 「\f2KeyTool and JarSigner\fP」節を参照してください。
461 .LP
462 .SS
463 サポートされるアルゴリズム
464 .LP
465 .IX "jarsigner" "Supported Algorithms and Key Sizes" "\fLjarsigner\fP \(em JAR signing and verification tool "
466 .LP
467 デフォルトでは、
468 .B jarsigner
469 は次のどちらかのアルゴリズムを使って JAR ファイルに署名します。
470 .TP 2
471 \(bu
472 SHA-1 ダイジェストアルゴリズムを使った DSA (デジタル署名アルゴリズム)
473 .TP 2
474 \(bu
475 MD5 ダイジェストアルゴリズムを使った RSA アルゴリズム
476 .LP
477 具体的には、署名者の公開鍵と非公開鍵が DSA 鍵である場合、
478 .B jarsigner
867 のファイル名では、小文字はすべて大文字に変換されます。
868 .LP
869 コマンド行で
870 .I -sigfile
871 オプションを指定しなかった場合、
872 .B .SF
873 ファイルと
874 .B .DSA
875 ファイルのベースファイル名は、コマンド行で指定された別名の先頭の 8 文字を
876 すべて大文字に変換したものになります。別名が 8 文字未満の場合は、別名が
877 そのまま使われます。別名の中に、署名ファイル名に使用できない文字が含まれている
878 場合は、該当する文字を下線 (_) に置き換えてファイル名が作成されます。
879 .TP 3
880 \-sigalg algorithm
881 .RS 3
882
883 .LP
884 JAR ファイルの署名に使用する署名アルゴリズムの名前を指定します。
885 .LP
886 標準署名アルゴリズム名の一覧については、「Java Cryptography Architecture」(
887 http://java.sun.com/javase/6/docs/technotes/guides/security/crypto/CryptoSpec.html#appa)
888 にある
889 「
890 .I Appendix A
891 」を参照してください。このアルゴリズムは、JAR ファイルの署名に使用する秘密鍵と互換性のあるものでなければなりません。このオプションを指定しなかった場合、秘密鍵のタイプに応じて SHA1withDSA、MD5withRSA のいずれかが使用されます。指定されたアルゴリズムの実装を提供するプロバイダが静的にインストールされているか、あるいはユーザがそのようなプロバイダを
892 .I \-providerClass
893 オプションを使って指定する必要があります。そうでない場合、コマンドの実行が失敗します。
894 .LP
895 .RE
896 .TP 3
897 \-digestalg algorithm
898 .RS 3
899 JAR ファイルのエントリをダイジェストする際に使用するメッセージダイジェストアルゴリズムの名前を指定します。
900 .LP
901 標準メッセージダイジェストアルゴリズム名の一覧については、「Java Cryptography Architecture」(http://java.sun.com/javase/6/docs/technotes/guides/security/crypto/CryptoSpec.html#appa)の
902 「
903 .I Appendix A
904 」を参照してください。このオプションを指定しなかった場合、SHA\-1 が使用されます。指定されたアルゴリズムの実装を提供するプロバイダが静的にインストールされているか、あるいはユーザがそのようなプロバイダを
905 .I \-providerClass
906 オプションを使って指定する必要があります。そうでない場合、コマンドの実行が失敗します。
907 .RE
908 .TP
909 .B -signedjar file
910 署名付き JAR ファイルの名前を指定します。
911 .RS
912 .LP
913 コマンド行で名前を指定しなかった場合は、入力 JAR ファイル (署名の対象となる
914 JAR ファイル) の名前と同じ名前が使われます。この場合、入力 JAR ファイルは署名
915 付き JAR ファイルによって上書きされます。
916 .RE
917 .TP
918 .B -verify
919 コマンド行でこのオプションが指定されている場合は、指定された JAR ファイルが
920 検証されます。JAR ファイルへの署名は行われません。検証が成功すると、
921 「jar verified」というメッセージが表示されます。署名されていない JAR ファイル、
1022 .nf
1023 \f3
1024 .fl
1025 jarsigner \-keystore NONE \-storetype PKCS11 \\
1026 .fl
1027 \-providerClass sun.security.pkcs11.SunPKCS11 \\
1028 .fl
1029 \-providerArg /foo/bar/token.config \\
1030 .fl
1031 \-list
1032 .fl
1033 \fP
1034 .fi
1035 .RE
1036 .TP 3
1037 .B \-providerName providerName
1038 \f2java.security\fP セキュリティプロパティファイル内で 2 つ以上のプロバイダが設定されている場合、\f2\-providerName\fP オプションを使って特定のプロバイダインスタンスを選択できます。このオプションの引数は、プロバイダの名前になります。
1039 .LP
1040 Sun PKCS#11 プロバイダの場合、\f2providerName\fP は \f2SunPKCS11\-\fP\f2TokenName\fP の形式になります。ここで、\f2TokenName\fP は、プロバイダインスタンスの設定時に使用した名前のサフィックスです。詳細については、
1041 .fi
1042 http://java.sun.com/javase/6/docs/technotes/guides/security/p11guide.html#KeyToolJarSigner#ATTRS
1043 の
1044 .na
1045 「\f2configuration attributes table\fP」を参照してください。たとえば、次のコマンドは、名前サフィックス \f2SmartCard\fP を持つ PKCS#11 キーストアプロバイダインスタンスの内容を一覧表示します。
1046 .RS 3
1047
1048 .LP
1049 .nf
1050 \f3
1051 .fl
1052 jarsigner \-keystore NONE \-storetype PKCS11 \\
1053 .fl
1054 \-providerName SunPKCS11\-SmartCard \\
1055 .fl
1056 \-list
1057 .fl
1058 \fP
1059 .fi
1060 .RE
1061 .TP
1062 .B \-Jjavaoption
|
3 .\" Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved.
4 .\" DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 .\"
6 .\" This code is free software; you can redistribute it and/or modify it
7 .\" under the terms of the GNU General Public License version 2 only, as
8 .\" published by the Free Software Foundation.
9 .\"
10 .\" This code is distributed in the hope that it will be useful, but WITHOUT
11 .\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 .\" FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
13 .\" version 2 for more details (a copy is included in the LICENSE file that
14 .\" accompanied this code).
15 .\"
16 .\" You should have received a copy of the GNU General Public License version
17 .\" 2 along with this work; if not, write to the Free Software Foundation,
18 .\" Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
19 .\"
20 .\" Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
21 .\" or visit www.oracle.com if you need additional information or have any
22 .\" questions.
23 .\" `
24 .TH jarsigner 1 "05 Jul 2012"
25 .SH "名前"
26 jarsigner \- JAR 署名および検証ツール
27 .LP
28 .RS 3
29
30 .LP
31 .LP
32 Java ARchive (JAR) ファイルの署名を生成し、署名付き JAR ファイルの署名を検証します。
33 .LP
34 .RE
35 .SH "形式"
36 .B jarsigner
37 [
38 .BI options
39 ]
40 jar-file alias
41 .br
42 .B jarsigner
43 .BI \-verify
44 [
335 .LP
336 キーストアには、Sun が提供する組み込みのデフォルトの実装があります。これは、
337 JKS という名前の独自のキーストアタイプ (形式) を利用するもので、キーストアを
338 ファイルとして実装しています。この実装では、個々の非公開鍵は個別のパスワード
339 によって保護され、キーストア全体の完全性も (非公開鍵とは別の) パスワードに
340 よって保護されます。
341 .LP
342
343 キーストアの実装は、プロバイダベースです。具体的には、
344 .I KeyStore
345 クラスが提供するアプリケーションインタフェースは、Service Provider Interface (SPI)
346 という形で実装されています。つまり、対応する
347 .I KeystoreSpi
348 抽象クラス (これも
349 .I java.security
350 パッケージに含まれている) があり、このクラスが Service Provider Interface の
351 メソッドを定義しています。これらのメソッドは、「プロバイダ」が実装しなければなりま
352 せん。ここで、「プロバイダ」とは、Java Security API によってアクセス可能なサービス
353 のサブセットに対し、その固定実装を提供するパッケージまたはパッケージの集合の
354 ことです。したがって、キーストアの実装を提供するには、「Java 暗号化アーキテク
355 チャ用プロバイダの実装方法」(http://docs.oracle.com/javase/6/docs/technotes/guides/security/crypto/HowToImplAProvider.html) のページで説明しているように、クライアントがプロバイダを実装し、
356 .I KeystoreSpi
357 サブクラスの実装を提供する必要があります。
358 .LP
359 アプリケーションでは、
360 .I KeyStore
361 クラスが提供する
362 .B getInstance
363 ファクトリメソッドを使うことで、さまざまなプロバイダから異なる「タイプ」のキーストアの
364 実装を選択できます。キーストアのタイプは、キーストア情報の格納形式とデータ形式、
365 およびキーストア内の非公開鍵とキーストア自体の完全性を保護するために使われる
366 アルゴリズムを定義します。異なるタイプのキーストアの実装には、互いに互換性は
367 ありません。keytool、jarsigner、および policytool の各ツールは、
368 .B KeyStore
369 が提供する共通のアプリケーションインタフェースだけを使っているので、任意の
370 タイプのキーストアで使用できます。
371 .LP
372 .B keytool
373 は、ファイルベースのキーストア実装に対して機能します。
374 .B keytool
375 は、コマンド行で渡されたキーストアの位置をファイル名として扱い、
437 .LP
438 .LP
439 デフォルトのキーストアタイプは jks (Sun が提供する独自のタイプのキーストアの
440 実装) です。これは、セキュリティプロパティファイル内の次の行によって指定されて
441 います。
442 .LP
443 .RS 5
444 .B keystore.type=jks
445 .RE
446 .LP
447 注: キーストアタイプの指定では、大文字と小文字は区別されません。たとえば、「JKS」と「jks」は同じものとみなされます。
448 .LP
449 各ツールでデフォルト以外のキーストアの実装を使用するには、上の行を変更して
450 別のキーストアのタイプを指定します。
451 たとえば、pkcs12 と呼ばれるタイプのキーストアの実装を提供している
452 プロバイダパッケージを使用するには、上の行を次のように変更します。
453 .LP
454 .B keystore.type=pkcs12
455 .LP
456 PKCS#11 プロバイダパッケージを使用する場合、その詳細については、「Java PKCS#11 Reference Guide」(
457 http://docs.oracle.com/javase/6/docs/technotes/guides/security/p11guide.html#KeyToolJarSigner)
458 にある
459 「\f2KeyTool and JarSigner\fP」節を参照してください。
460 .LP
461 .SS
462 サポートされるアルゴリズム
463 .LP
464 .IX "jarsigner" "Supported Algorithms and Key Sizes" "\fLjarsigner\fP \(em JAR signing and verification tool "
465 .LP
466 デフォルトでは、
467 .B jarsigner
468 は次のどちらかのアルゴリズムを使って JAR ファイルに署名します。
469 .TP 2
470 \(bu
471 SHA-1 ダイジェストアルゴリズムを使った DSA (デジタル署名アルゴリズム)
472 .TP 2
473 \(bu
474 MD5 ダイジェストアルゴリズムを使った RSA アルゴリズム
475 .LP
476 具体的には、署名者の公開鍵と非公開鍵が DSA 鍵である場合、
477 .B jarsigner
866 のファイル名では、小文字はすべて大文字に変換されます。
867 .LP
868 コマンド行で
869 .I -sigfile
870 オプションを指定しなかった場合、
871 .B .SF
872 ファイルと
873 .B .DSA
874 ファイルのベースファイル名は、コマンド行で指定された別名の先頭の 8 文字を
875 すべて大文字に変換したものになります。別名が 8 文字未満の場合は、別名が
876 そのまま使われます。別名の中に、署名ファイル名に使用できない文字が含まれている
877 場合は、該当する文字を下線 (_) に置き換えてファイル名が作成されます。
878 .TP 3
879 \-sigalg algorithm
880 .RS 3
881
882 .LP
883 JAR ファイルの署名に使用する署名アルゴリズムの名前を指定します。
884 .LP
885 標準署名アルゴリズム名の一覧については、「Java Cryptography Architecture」(
886 http://docs.oracle.com/javase/6/docs/technotes/guides/security/crypto/CryptoSpec.html#AppA)
887 にある
888 「
889 .I Appendix A
890 」を参照してください。このアルゴリズムは、JAR ファイルの署名に使用する秘密鍵と互換性のあるものでなければなりません。このオプションを指定しなかった場合、秘密鍵のタイプに応じて SHA1withDSA、MD5withRSA のいずれかが使用されます。指定されたアルゴリズムの実装を提供するプロバイダが静的にインストールされているか、あるいはユーザがそのようなプロバイダを
891 .I \-providerClass
892 オプションを使って指定する必要があります。そうでない場合、コマンドの実行が失敗します。
893 .LP
894 .RE
895 .TP 3
896 \-digestalg algorithm
897 .RS 3
898 JAR ファイルのエントリをダイジェストする際に使用するメッセージダイジェストアルゴリズムの名前を指定します。
899 .LP
900 標準メッセージダイジェストアルゴリズム名の一覧については、「Java Cryptography Architecture」(http://docs.oracle.com/javase/6/docs/technotes/guides/security/crypto/CryptoSpec.html#AppA)の
901 「
902 .I Appendix A
903 」を参照してください。このオプションを指定しなかった場合、SHA\-1 が使用されます。指定されたアルゴリズムの実装を提供するプロバイダが静的にインストールされているか、あるいはユーザがそのようなプロバイダを
904 .I \-providerClass
905 オプションを使って指定する必要があります。そうでない場合、コマンドの実行が失敗します。
906 .RE
907 .TP
908 .B -signedjar file
909 署名付き JAR ファイルの名前を指定します。
910 .RS
911 .LP
912 コマンド行で名前を指定しなかった場合は、入力 JAR ファイル (署名の対象となる
913 JAR ファイル) の名前と同じ名前が使われます。この場合、入力 JAR ファイルは署名
914 付き JAR ファイルによって上書きされます。
915 .RE
916 .TP
917 .B -verify
918 コマンド行でこのオプションが指定されている場合は、指定された JAR ファイルが
919 検証されます。JAR ファイルへの署名は行われません。検証が成功すると、
920 「jar verified」というメッセージが表示されます。署名されていない JAR ファイル、
1021 .nf
1022 \f3
1023 .fl
1024 jarsigner \-keystore NONE \-storetype PKCS11 \\
1025 .fl
1026 \-providerClass sun.security.pkcs11.SunPKCS11 \\
1027 .fl
1028 \-providerArg /foo/bar/token.config \\
1029 .fl
1030 \-list
1031 .fl
1032 \fP
1033 .fi
1034 .RE
1035 .TP 3
1036 .B \-providerName providerName
1037 \f2java.security\fP セキュリティプロパティファイル内で 2 つ以上のプロバイダが設定されている場合、\f2\-providerName\fP オプションを使って特定のプロバイダインスタンスを選択できます。このオプションの引数は、プロバイダの名前になります。
1038 .LP
1039 Sun PKCS#11 プロバイダの場合、\f2providerName\fP は \f2SunPKCS11\-\fP\f2TokenName\fP の形式になります。ここで、\f2TokenName\fP は、プロバイダインスタンスの設定時に使用した名前のサフィックスです。詳細については、
1040 .fi
1041 http://docs.oracle.com/javase/6/docs/technotes/guides/security/p11guide.html#ATTRS
1042 の
1043 .na
1044 「\f2configuration attributes table\fP」を参照してください。たとえば、次のコマンドは、名前サフィックス \f2SmartCard\fP を持つ PKCS#11 キーストアプロバイダインスタンスの内容を一覧表示します。
1045 .RS 3
1046
1047 .LP
1048 .nf
1049 \f3
1050 .fl
1051 jarsigner \-keystore NONE \-storetype PKCS11 \\
1052 .fl
1053 \-providerName SunPKCS11\-SmartCard \\
1054 .fl
1055 \-list
1056 .fl
1057 \fP
1058 .fi
1059 .RE
1060 .TP
1061 .B \-Jjavaoption
|