初期バージョン から バージョン 1 における更新: チケット #20
- 更新日時:
- 2006/12/01 15:20:19 (4 年 前)
凡例:
- 変更なし
- 追加
- 削除
- 変更
-
チケット #20 – 説明
initial v1 7 7 8 8 韓国語の署名解説サイト: 9 http://kr.blog.yahoo.com/certkr/6.html9 http://kr.blog.yahoo.com/certkr/6.html 10 10 後は!FireFox Hacksを参考にしました。 11 http://www.amazon.co.jp/exec/obidos/ASIN/487311241911 http://www.amazon.co.jp/exec/obidos/ASIN/4873112419 12 12 13 13 まずsigntoolなどが入っているNSS セキュリティツールを手に入れます。 14 14 場所はどうやら転々としているようですが、2006年11月の段階では 15 http://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/15 http://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/ 16 16 以下にあります。今回は 17 http://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_3_11_4_RTM/msvc6.0/WINNT5.0_OPT.OBJ/nss-3.11.4.zip17 http://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_3_11_4_RTM/msvc6.0/WINNT5.0_OPT.OBJ/nss-3.11.4.zip 18 18 をつかいました。 19 19 20 20 これだけだとsigntoolなどが起動しません。Netscape ポータブル・ランタイム(NSPR)が必要です。 21 21 NSPRは 22 http://ftp.mozilla.org/pub/mozilla.org/nspr/releases/22 http://ftp.mozilla.org/pub/mozilla.org/nspr/releases/ 23 23 以下にあります。今回は 24 http://ftp.mozilla.org/pub/mozilla.org/nspr/releases/v4.6.4/msvc6.0/WINNT5.0_OPT.OBJ/nspr-4.6.4.zip24 http://ftp.mozilla.org/pub/mozilla.org/nspr/releases/v4.6.4/msvc6.0/WINNT5.0_OPT.OBJ/nspr-4.6.4.zip 25 25 をつかいました。 26 26 … … 28 28 これでsigntoolなどをつかう準備が整いました。 29 29 30 次に証明書をNSS用に変換します。31 そのためにはIEを使うとうまくいくようです。32 インターネットオプション33 →コンテンツ34 →証明書35 →インポート36 →sample.pfxを選択37 →秘密キーを入力38 →このキーをエクスポート可能にするをチェックして次へ39 →証明書ストアはそのままで次へ40 →完了41 としてまず証明書をIEに登録し、そのまま追加された証明書を選択、42 エクスポート43 →はい、秘密キーをエクスポートします44 →Personal Infomation Exchange - PKCS !#12 (.PFX) になっていることを確認して次へ45 →秘密キーを入力46 →エクスポート先を選択。NSSのbinディレクトリにしておくと後で楽。47 以上でNSS用のpfx(仮にnss.pfxとします)ができます。48 pfxをインポートしてエクスポートするだけですが、これをすることでNSSで使えるようになるようです。49 30 50 いよいよNSSを使って署名をします。 51 コマンドプロンプトでNSSのbinフォルダに移動して 31 署名自体は 32 33 {{{ 34 signtool -d . -k "cert_name" -p "passwd" -X -Z sample.xpi sample 35 }}} 36 37 というコマンドで行います。 38 -dでcert8.db, key3.db, secmod.dbという証明書ストアのあるフォルダを指定します。 39 これらはFirefoxのプロファイルディレクトリにあるものか、 52 40 {{{ 53 41 certutil -N -d . 54 42 }}} 55 として新し い証明書ストアを作ります。新しく作る証明書ストアのパスワードを聞かれますので適当に入れます。56 するとcert8.db, key3.db, secmod.dbの2つのファイルができます。43 として新しく作ることができます。 44 この際新しく作る証明書ストアのパスワードを聞かれますので適当に入れます。 57 45 58 次に先に作ったpfxを証明書ストアに登録します。 59 {{{ 60 pk12util -i nss.pfx -d . 61 }}} 62 登録できたら、登録名を調べます。 46 -kで署名に使う証明書の名前を指定します。この名前は 63 47 {{{ 64 48 certutil -L -d . 65 49 }}} 50 を実行することで調べられます。 66 51 実行すると 67 52 {{{ 68 {455DD8FC-CEAE-497D-8D8C-22CBACA298A0} u,u,u53 {455DD8FC-CEAE-497D-8D8C-22CBACA298A0} u,u,u 69 54 }}} 70 のような表示が出ます。この場合{455DD8FC-CEAE-497D-8D8C-22CBACA298A0}が登録された証明書の名前です。 55 のような表示が出ます。 56 この場合{455DD8FC-CEAE-497D-8D8C-22CBACA298A0}が登録された証明書の名前です。 57 この際、 58 {{{ 59 PvkTmp:e962b86a-6fa0-4072-a46a-9fd9d4a04ca6 u,u,u 60 }}} 61 のように、!PvkTmp:が先頭についているときはそのまま-kに渡しても正しく書名ができないようです。 62 この場合はIEを使って証明書を変更します。 63 インターネットオプション 64 →コンテンツ 65 →証明書 66 →インポート 67 →sample.pfxを選択 68 →秘密キーを入力 69 →このキーをエクスポート可能にするをチェックして次へ 70 →証明書ストアはそのままで次へ 71 →完了 72 としてまず証明書をIEに登録し、そのまま追加された証明書を選択、 73 エクスポート 74 →はい、秘密キーをエクスポートします 75 →Personal Infomation Exchange - PKCS !#12 (.PFX) になっていることを確認して次へ 76 →秘密キーを入力 77 →エクスポート先を選択。NSSのbinディレクトリにしておくと後で楽。 78 こうしてできた証明書を証明書ストアに登録します。 71 79 72 次にいったんオブジェクト署名証明書を作ります。 80 登録するにはFirefoxをつかうか、コマンドラインをつかいます。 81 Firefoxで追加するには 82 ツール→オプション→セキュリティ→証明書を表示→インポート 83 でpfxのファイルパスとパスワードを指定します。 84 証明書はFirefoxのプロファイルディレクトリの証明書ストアに登録されるので-dでパスを指定するなりコピーして使うなりします。 85 Firefoxで証明書の名前を調べるには証明書をダブルクリックして詳細を選び、証明書の階層で証明書を選択して、証明書のフィールドのルートにある名前が証明書の名前です。 86 コマンドラインで追加するには 73 87 {{{ 74 signtool -G "sample_cert" -k "{455DD8FC-CEAE-497D-8D8C-22CBACA298A0}" -p "passwd" -d . 88 pk12util -i converted_sample.pfx -d . 89 }}} 90 とします。 91 92 signtoolの-pオプションで証明書のパスワードを指定できます。 93 -XはXPIを作るということを示すオプションです。 94 -ZはXPIのファイル名です。 95 最後にxpiのファイルの内容が格納されたフォルダを指定します。 96 97 うまくいくとsampleディレクトリに署名をして、再び圧縮されてsample.xpiが出来上がります。 98 ちゃんと署名できたかはFireFoxにD&Dすることで確かめられます。 99 100 101 もしIEをつかって証明書を変換してもだめだった場合、以下の方法で証明書を変換するとうまくいくかもしれません。 102 あらかじめ変換前の証明書を証明書ストアに登録しておきます。 103 {{{ 104 signtool -G "converted_cert_name" -k "pre_cert_name" -p "passwd" -d . 75 105 }}} 76 106 実行すると以下のようなメッセージが出てきます。 … … 85 115 86 116 87 Enter certificate information. All fields are optional. Acceptable117 Enter certificate information. All fields are optional. Acceptable 88 118 characters are numbers, letters, spaces, and apostrophes. 89 certificate common name: sample_cert119 certificate common name: converted_cert_name 90 120 organization: sample inc. 91 121 organization unit: sample dev. … … 97 127 certificate request generated 98 128 certificate has been signed 99 certificate " sample_cert" added to database129 certificate "converted_cert_name" added to database 100 130 Exported certificate to x509.raw and x509.cacert. 101 131 }}} 102 最後にxpiに対して署名をする…のですが、xpiそのままで署名することはできません。 103 いったんxpiを展開しておきます。展開したフォルダをsampleとすると、 104 {{{ 105 signtool -d . -k "sample_cert" -p "passwd" -X -Z sample.xpi sample 132 成功するとconverted_cert_nameという名前の証明書ができます。 133 106 134 }}} 107 とすることでsampleディレクトリに署名をして、再び圧縮されてsample.xpiが出来上がります。108 ちゃんと署名できたかはFireFoxにD&Dすることで確かめられます。109 }}}