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