初期バージョン から バージョン 1 における更新: チケット #20

差分発生行の前後
無視リスト:
更新日時:
2006/12/01 15:20:19 (4 年 前)
更新者:
mtamaki
コメント:

凡例:

変更なし
追加
削除
変更
  • チケット #20 – 説明

    initial v1  
    77 
    88韓国語の署名解説サイト: 
    9     http://kr.blog.yahoo.com/certkr/6.html 
     9        http://kr.blog.yahoo.com/certkr/6.html 
    1010後は!FireFox Hacksを参考にしました。 
    11     http://www.amazon.co.jp/exec/obidos/ASIN/4873112419 
     11        http://www.amazon.co.jp/exec/obidos/ASIN/4873112419 
    1212 
    1313まずsigntoolなどが入っているNSS セキュリティツールを手に入れます。 
    1414場所はどうやら転々としているようですが、2006年11月の段階では 
    15     http://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/ 
     15        http://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/ 
    1616以下にあります。今回は 
    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.zip 
     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.zip 
    1818をつかいました。 
    1919 
    2020これだけだとsigntoolなどが起動しません。Netscape ポータブル・ランタイム(NSPR)が必要です。 
    2121NSPRは 
    22     http://ftp.mozilla.org/pub/mozilla.org/nspr/releases/ 
     22        http://ftp.mozilla.org/pub/mozilla.org/nspr/releases/ 
    2323以下にあります。今回は 
    24     http://ftp.mozilla.org/pub/mozilla.org/nspr/releases/v4.6.4/msvc6.0/WINNT5.0_OPT.OBJ/nspr-4.6.4.zip 
     24        http://ftp.mozilla.org/pub/mozilla.org/nspr/releases/v4.6.4/msvc6.0/WINNT5.0_OPT.OBJ/nspr-4.6.4.zip 
    2525をつかいました。 
    2626 
     
    2828これでsigntoolなどをつかう準備が整いました。 
    2929 
    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で使えるようになるようです。 
    4930 
    50 いよいよNSSを使って署名をします。 
    51 コマンドプロンプトでNSSのbinフォルダに移動して 
     31署名自体は 
     32 
     33{{{ 
     34signtool -d . -k "cert_name" -p "passwd" -X -Z sample.xpi sample 
     35}}} 
     36 
     37というコマンドで行います。 
     38-dでcert8.db, key3.db, secmod.dbという証明書ストアのあるフォルダを指定します。 
     39これらはFirefoxのプロファイルディレクトリにあるものか、 
    5240{{{ 
    5341certutil -N -d . 
    5442}}} 
    55 として新しい証明書ストアを作ります。新しく作る証明書ストアのパスワードを聞かれますので適当に入れます。 
    56 するとcert8.db, key3.db, secmod.dbの2つのファイルができます。 
     43として新しく作ることができます。 
     44この際新しく作る証明書ストアのパスワードを聞かれますので適当に入れます。 
    5745 
    58 次に先に作ったpfxを証明書ストアに登録します。 
    59 {{{ 
    60 pk12util -i nss.pfx -d . 
    61 }}} 
    62 登録できたら、登録名を調べます。 
     46-kで署名に使う証明書の名前を指定します。この名前は 
    6347{{{ 
    6448certutil -L -d . 
    6549}}} 
     50を実行することで調べられます。 
    6651実行すると 
    6752{{{ 
    68 {455DD8FC-CEAE-497D-8D8C-22CBACA298A0}                      u,u,u 
     53{455DD8FC-CEAE-497D-8D8C-22CBACA298A0}                                          u,u,u 
    6954}}} 
    70 のような表示が出ます。この場合{455DD8FC-CEAE-497D-8D8C-22CBACA298A0}が登録された証明書の名前です。 
     55のような表示が出ます。 
     56この場合{455DD8FC-CEAE-497D-8D8C-22CBACA298A0}が登録された証明書の名前です。 
     57この際、 
     58{{{ 
     59PvkTmp: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こうしてできた証明書を証明書ストアに登録します。 
    7179 
    72 次にいったんオブジェクト署名証明書を作ります。 
     80登録するにはFirefoxをつかうか、コマンドラインをつかいます。 
     81Firefoxで追加するには 
     82ツール→オプション→セキュリティ→証明書を表示→インポート 
     83でpfxのファイルパスとパスワードを指定します。 
     84証明書はFirefoxのプロファイルディレクトリの証明書ストアに登録されるので-dでパスを指定するなりコピーして使うなりします。 
     85Firefoxで証明書の名前を調べるには証明書をダブルクリックして詳細を選び、証明書の階層で証明書を選択して、証明書のフィールドのルートにある名前が証明書の名前です。 
     86コマンドラインで追加するには 
    7387{{{ 
    74 signtool -G "sample_cert" -k "{455DD8FC-CEAE-497D-8D8C-22CBACA298A0}" -p "passwd" -d . 
     88pk12util -i converted_sample.pfx -d . 
     89}}} 
     90とします。 
     91 
     92signtoolの-pオプションで証明書のパスワードを指定できます。 
     93-XはXPIを作るということを示すオプションです。 
     94-ZはXPIのファイル名です。 
     95最後にxpiのファイルの内容が格納されたフォルダを指定します。 
     96 
     97うまくいくとsampleディレクトリに署名をして、再び圧縮されてsample.xpiが出来上がります。 
     98ちゃんと署名できたかはFireFoxにD&Dすることで確かめられます。 
     99 
     100 
     101もしIEをつかって証明書を変換してもだめだった場合、以下の方法で証明書を変換するとうまくいくかもしれません。 
     102あらかじめ変換前の証明書を証明書ストアに登録しておきます。 
     103{{{ 
     104signtool -G "converted_cert_name" -k "pre_cert_name" -p "passwd" -d . 
    75105}}} 
    76106実行すると以下のようなメッセージが出てきます。 
     
    85115 
    86116 
    87 Enter certificate information.  All fields are optional. Acceptable 
     117Enter certificate information.  All fields are optional. Acceptable 
    88118characters are numbers, letters, spaces, and apostrophes. 
    89 certificate common name: sample_cert 
     119certificate common name: converted_cert_name 
    90120organization: sample inc. 
    91121organization unit: sample dev. 
     
    97127certificate request generated 
    98128certificate has been signed 
    99 certificate "sample_cert" added to database 
     129certificate "converted_cert_name" added to database 
    100130Exported certificate to x509.raw and x509.cacert. 
    101131}}} 
    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 
    106134}}} 
    107 とすることでsampleディレクトリに署名をして、再び圧縮されてsample.xpiが出来上がります。 
    108 ちゃんと署名できたかはFireFoxにD&Dすることで確かめられます。 
    109 }}}