Java

2014-03-19, java

jarファイルの署名を付け直す

段々とセキュリティポリシーが厳しくなって面倒になりつつあるJavaの、jarファイルの署名をやり直す方法をまとめました。jarと言ってもzipなので分解して弄れば何とかなります(面倒ですが!)。

まずはマニフェストの雛形を用意します。Permissions列が最近新たに記載が必須になった部分ですね。なんでこんなに面倒なのか(←しつこい)。

manifest.txt
Manifest-Version: 1.0
Permissions: all-permissions

作業用のディレクトリを用意してjarファイルの中身を展開します。META-INFをさくっと消しちゃってますが、ここはケースバイケースだと思います。場合によっては必要な設定を取り出して、上記のmanifest.txtに足しておく必要があるかと思います。

$ mkdir tmp
$ cd tmp
$ unzip ../foo.jar
$ rm -r META-INF/

jarコマンドでmanifest付きのjarファイルを作成してから、署名します。ここではkeystoreに予めbarという名前のキーが登録されている状態を仮定しています。

$ jar cfm ../foo.jar ../manifest.txt *
$ cd ..
$ jarsigner -keystore ~/.keystore foo.jar bar

参考URL

この記事は役に立ちましたか?