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ファイルを生成する。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$ keytool -importkeystore -srckeystore MY_KEYSTORE_1.pfx -srcstoretype PKCS12 -destkeystore MY_KEYSTORE_2.jks | |
出力先キーストアのパスワードを入力してください: | |
新規パスワードを再入力してください: | |
ソースキーストアのパスワードを入力してください: | |
別名 XXX-XXX-XXX-XXX-XXX のエントリのインポートに成功しました。 | |
インポートコマンドが完了しました: 1 件のエントリのインポートが成功しました。0 件のエントリのインポートが失敗したか取り消されました |
次のコマンドにより、jks内の証明書の別名(alias)を簡略な名前にする。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$ keytool -changealias -keystore MY_KEYSTORE_2.jks -alias XXX-XXX-XXX-XXX-XXX -destalias MY_ALIAS |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$ keytool -list -keystore MY_KEYSTORE_2.jks | |
キーストアのタイプ: JKS | |
キーストアのプロバイダ: SUN | |
キーストアには 1 エントリが含まれます。 | |
MY_ALIAS, 2010/06/10, PrivateKeyEntry, | |
証明書のフィンガープリント (MD5): XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX |
4. jksファイルでjarファイルに署名をする
次のコマンドにより、jarファイルに署名をする。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$ jarsigner -keystore MY_KEYSTORE_2.jks TARGET.jar MY_ALIAS |
なお、次のコマンドにより、jarの署名を検証できる。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$ jarsigner -verbose -verify -certs TARGET.jar | |
22501 Thu Dec 02 20:26:46 JST 2010 META-INF/MANIFEST.MF | |
22534 Thu May 17 22:40:54 JST 2012 META-INF/MY_ALIAS.SF | |
3731 Thu May 17 22:40:54 JST 2012 META-INF/MY_ALIAS.RSA | |
... | |
sm 1012 Thu Dec 02 20:26:46 JST 2010 com/example/a.class | |
X.509, CN=Example Inc., O=Example Inc., L=Shinjyuku-ku, ST=Tokyo, C=JP | |
[証明書は 12/05/17 9:00 から 13/05/10 8:59 まで有効です] | |
X.509, CN=Thawte Code Signing CA - G2, O="Thawte, Inc.", C=US | |
[証明書は 10/02/08 9:00 から 20/02/08 8:59 まで有効です] | |
[KeyUsage 拡張機能はコード署名をサポートしていません] | |
X.509, CN=thawte Primary Root CA, OU="(c) 2006 thawte, Inc. - For authorized use only", OU=Certification Services Division, O="thawte, Inc.", C=US | |
[証明書は 06/11/17 9:00 から 36/07/17 8:59 まで有効です] | |
[KeyUsage 拡張機能はコード署名をサポートしていません] | |
X.509, CN=Example Inc., O=Example Inc., L=Shinjyuku-ku, ST=Tokyo, C=JP | |
[証明書は 12/04/14 8:59 に失効しました] | |
X.509, CN=Thawte Code Signing CA, O=Thawte Consulting (Pty) Ltd., C=ZA | |
[証明書は 03/08/06 9:00 から 13/08/06 8:59 まで有効です] | |
[KeyUsage 拡張機能はコード署名をサポートしていません] | |
X.509, EMAILADDRESS=premium-server@thawte.com, CN=Thawte Premium Server CA, OU=Certification Services Division, O=Thawte Consulting cc, L=Cape Town, ST=Western Cape, C=ZA | |
[証明書は 96/08/01 9:00 から 21/01/01 8:59 まで有効です] | |
s = 署名が検証されました。 | |
m = エントリがマニフェスト内にリストされます。 | |
k = 1 つ以上の証明書がキーストアで検出されました。 | |
i = 1 つ以上の証明書がアイデンティティスコープで検出されました。 | |
jar が検証されました。 | |
警告: | |
この jar には、署名者の証明書が期限切れのエントリが含まれています。 |
古い署名がされたjarに新しい署名をする場合、上記コマンドでは古い署名はそのままで、新しい署名がそこに追加されます(二つの署名付きのjarファイルとなる)。
今回、古い署名の警告をどうにかするスマートな解決方法が分からなかったため、署名を追加する前に下記の方法により古い署名を削除ました:
(1) Windowsで古いjarファイルの拡張子をエクスプローラ上でzipにリネーム
(2) zipファイルをエクスプローラで開く
(3) META-INFフォルダ下のXXX.RSAファイルとXXX.SFファイルを削除(XXXは任意の名前)
(4) エクスプローラ上でzip拡張子をjar拡張子にリネーム
以上です。
もっと簡単な手順になってほしいです...
0 件のコメント:
コメントを投稿