2012-05-18

jarファイルにthawteの証明書で署名をする

jarファイルに署名を新規追加する方法、または署名の中の有効期限切れ証明書を更新する方法をまとめておきます。下記方法では大手認証局のうちの一つのthawteの証明書を利用しています。

1. thawteでの証明書を購入して取得する

http://www.jp.thawte.com/dev/index.html
に従い、Code signing certificate for Microsoft Authenticode(Multi-Purpose)を購入、申請、証明書の発行をする。
※Windowsマシン上のIEで証明書の発行(or更新or再発行)を行う。

2. pfxファイルを生成する

http://www.jp.thawte.com/faq/60013.htm
の方法により証明書発行したWindowsマシンのレジストリ上のデータからpfxファイルを生成する。

3. pfxファイルからjksファイルを生成する

次のコマンドにより、pfxからjksファイルを生成する。

参考: http://ccl.c-lis.co.jp/modules/d3blog/details.php?bid=48

次のコマンドにより、jks内の証明書の別名(alias)を簡略な名前にする。

なお、次のコマンドにより、別名を確認できる。

4. jksファイルでjarファイルに署名をする

次のコマンドにより、jarファイルに署名をする。


なお、次のコマンドにより、jarの署名を検証できる。

ここで、上記出力例をよく見ると末尾に警告が表示されています。
古い署名がされたjarに新しい署名をする場合、上記コマンドでは古い署名はそのままで、新しい署名がそこに追加されます(二つの署名付きのjarファイルとなる)。

今回、古い署名の警告をどうにかするスマートな解決方法が分からなかったため、署名を追加する前に下記の方法により古い署名を削除ました:
(1) Windowsで古いjarファイルの拡張子をエクスプローラ上でzipにリネーム
(2) zipファイルをエクスプローラで開く
(3) META-INFフォルダ下のXXX.RSAファイルとXXX.SFファイルを削除(XXXは任意の名前)
(4) エクスプローラ上でzip拡張子をjar拡張子にリネーム

以上です。
もっと簡単な手順になってほしいです...

0 件のコメント: