Signing an extension
出典: MDC
この記事では、Object Signing 対応コードサイニング証明書を利用して、Firefox や Thunderbird の拡張機能にデジタル署名を付ける方法について説明します。なお、以下の手順は、テーマなど他の XPI ファイルにも当てはまります。
目次 |
[編集] 署名ツールの入手
署名には NSPR と NSS を利用します。必要なツールは Mozilla の FTP サーバから入手できます。
Windows では、以下の ZIP ファイルをダウンロードして展開してください。
Mac OS X と Linux では、以下のソースをダウンロードして、自分でビルドしてください。
次に、nspr/lib、nss/bin、nss/lib ディレクトリの中にあるファイルを、すべて同じディレクトリ、例えば /usr/lib/nss/ にまとめます。
[編集] パスの設定
環境変数に、上で作成したディレクトリへのパスを追加します。
Mac OS X では:
$ export PATH=${PATH}:/usr/lib/nss
[編集] 証明書データベースの作成
$ cd /Volumes/CertDB/ObjectSigning $ certutil -N -d .
[編集] ヒント: ベリサインから発行された Object Signing 証明書のインポート
ベリサイン (VeriSign) で Object Signing 対応コードサイニング証明書を購入すると、ピックアップした証明書は Netscape 4.x のユーザプロファイルに含まれる証明書データベースに直接インストールされます。ただし、このデータベースの形式は古いため、このままではコード署名に利用できません。以下の手順で、Firefox に新規プロファイルを作成し、Netscape のプロファイルをインポートすることで、データベースを更新できます。
$ firefox-bin -CreateProfile FromNS4 $ firefox-bin -p FromNS4 -migration
Firefox を終了すると、プロファイルに以下の 3 つのファイルが生成されています。これらが証明書データベースファイルになりますので、プロファイルから取り出し、厳重に保管してください。
- cert8.db
- key3.db
- secmod.db
[編集] 署名
署名ツールの基本的な使い方は以下の通りです。
$ signtool \ -d (証明書データベースファイルを含むディレクトリへのパス) \ -k (証明書のニックネーム) \ -p (証明書のパスワード) \ -X -Z (署名済みファイルの出力先パス+ファイル名) \ (chrome ディレクトリ、chrome.manifest ファイル、install.rdf ファイルなどを含む拡張機能の作業ディレクトリへのパス)
パスワードを直接スクリプトに記述するのは危険ですので、実際には以下のように使うと良いでしょう。
$ echo "Enter password for Object Signing:" $ read MYPASSWORD $ signtool \ -d /Volumes/CertDB/ObjectSigning \ -k "My Company's VeriSign, Inc. ID" \ -p $MYPASSWORD \ -X -Z ~/Desktop/MyExtension/dest/MyExtension-1.0.xpi \ ~/Desktop/MyExtension/source $ unset MYPASSWORD
[編集] 確認
出力された XPI ファイルを Firefox のコンテンツエリアにドラッグ&ドロップして、インストールダイアログを表示します。ファイル名とともに、あなたの会社名が表示されているはずです。
[編集] 参考資料
- Signing a XPI - テスト手順も含めた詳しい解説です。
- Signing an executable with Authenticode - 実行ファイル (exe) への署名手順はこちらを参照してください。
- Firefox Add-on for XUL based GUI for signing XPI file : [1]
- Signing a Firefox extension with a Windows Authenticode SSL certificate / key - 認証局 (CA) によっては、Authenticode 証明書を Object Signing に転用することを許可 (あるいはサポート) していない場合がありますので、注意が必要です。必ず利用規約を確認してください。
カテゴリ: Extensions | Themes | XPInstall