jarsigner は、指定された jarfile にデジタル署名を追加します。または、-verify オプションが指定されている場合は、JAR ファイルに既に添付されているデジタル署名または署名を検証します。指定された署名者は、署名が使用されるエンティティのニックネームまたはエイリアスであり、大文字と小文字は区別されません。指定された署名者名は、署名を生成する秘密鍵を検索するために使用されます。
jarsigner コマンドの実行中に以下のエラーが発生した場合:
jarsigner: command not found
選択したディストリビューションに従って、以下のパッケージをインストールしてみてください。
分布 | コマンド |
---|---|
Debian | apt-get install gcj-4.7-jdk |
Ubuntu | apt-get install openjdk-12-jdk-headless |
Arch Linux | pacman -S java-environment-common |
カリ Linux | apt-get install openjdk-11-jdk-headless |
Fedora | dnf install java-9-openjdk-devel-debug-1 |
Raspbian | apt-get install openjdk-8-jdk |
コマンド オプション
オプション | 説明 |
---|---|
-証明書 | このオプションを -verify または -verbose オプションと一緒に指定すると、jarsigner は署名付き JAR ファイルに関連付けられた公開鍵証明書の詳細を表示します。 |
-J javaoption | 指定された javaoption を Java インタープリターに直接渡します。 |
-キーパス パスワード | 指定された署名者の秘密鍵を暗号化するパスワードを指定します。このオプションが指定されていない場合、jarsigner はパスワードの入力を求めます。 |
-キーストアの URL | キーストアは、キーと証明書を含むファイルです。 |
-sigfile ベース名 | JAR ファイルの META-INF/ ディレクトリに追加される .SF および .DSA ファイルのベース名を指定します。 |
-signedjar 出力ファイル | jarsigner によって作成された署名付き JAR ファイルの名前を指定します。 |
-storepass パスワード | キーストアの整合性を検証するパスワードを指定します (ただし、秘密鍵は暗号化しません)。このオプションを省略した場合、jarsigner はパスワードの入力を求めます。 |
-storetype タイプ | -keystore オプションで指定されたキーストアのタイプを指定します。 |
-詳細 | 署名または検証プロセスに関する追加情報を表示します。 |
-検証 | jarsigner が、指定された JAR ファイルに署名するのではなく検証する必要があることを指定します。 |
jarsigner コマンドの例
1. JAR ファイルに署名する:
# jarsigner path/to/file.jar keystore_alias
2. 特定のアルゴリズムで JAR ファイルに署名します。
# jarsigner -sigalg algorithm path/to/file.jar keystore_alias
3. JAR ファイルの署名を確認します。
# jarsigner -verify path/to/file.jar
4. 複数のユーザーによる .jar ファイルへの署名:
$ jarsigner test.jar geek ## User geek signs it $ jarsigner test.jar geeky ## User geeky signs it
結論
jarsigner コマンドは、.jar ファイルに署名または検証します。デジタル署名を .jar ファイルに追加すると、内容を変更すると署名が無効になるため、セキュリティが向上します。 jarfile は、署名される元のファイルです。 alias は、署名者の ID として認識されるエイリアスです。デフォルトでは、jarsigner は元のファイルを署名済みのファイルに置き換えます。これは -signedjar オプションで変更できます。