2005年5月10日 星期二

Signing an XPI (幫 xpi 加上認證)

在正式說明前,先來幾個參考網址:在第一個參考網址 (Signing an XPI) 中已經有相當詳盡的說明了,我也不多說,只是將我自己在實作的過程中一些動作與經驗寫下來,避免以後自己忘記了。
    首先是環境的設定:
  1. 工作環境:Windows XP
  2. ftp.mozilla.org 取得 nss-3.10.zip
  3. nss-3.10.zip 解壓縮到 c:\nss 中 (這個依個人喜好)
  4. 將 c:\nss\lib 中所有的 *.dll 複製到 C:\Windows\System32\
  5. 除了 C:\nss\lib 中的 dll 外,還需要一些額外的 dll 才能執行。
    1. 請到 sun 的網站下載 j2eesdk,裡面有所需要的 dll (使用 WinRAR 開啟 j2eesdk 的執行檔,所需的 dll 就在 package 目錄中的 imq.zip 的 lib 目錄裡)
    2. 不然就下載我已經取出來的 dll,檔案:imq.zip 中的 dll,下載後將副檔名改為 rar,再使用 winrar 解壓縮即可 (註一)
  6. 執行 "命令提示字元"
  7. C:\> set PATH=%PATH%;c:\nss (這只是為了少打幾個字而已)
    接著就是產生認證資料並建立加入認證資訊的 xpi
  1. 假設我的工作目錄在 C:\Temp 中
    C:\> cd C:\Temp
  2. 建立要認證的程式的程式目錄
    C:\> md test
  3. 建立用來存放認證資料的目錄
    C:\> md db
  4. 建立認證資料庫
    C:\> certutil -N -d db
  5. 建立測試用的憑證
    C:\> signtool -G myTestCert -d db -p "mypassword"
    <回答一些問題>
    y
    mycert
    my organization
    my state
    my country
    pete
    myemail@mydomain.com
  6. 上述的步驟會產生兩個檔案 x509.cacert 與 x509.raw
  7. 確認是否真的已經建立測試用的憑證
    C:\> certutil -d db -L
    [outputs]
    myTestCert u,u,Cu
  8. 將寫好的程式放到 test 這個目錄中
  9. 在 nss 3.10 已經修正無法產生認證的 xpi 的問題,所以只要下底下的指令即可產生有認證的 xpi
    C:\> signtool -d db -k "myTestCert" -p "mypassword" -X -Z "test.xpi" test\
  10. 將建立的 test.xpi 拖到 Firefox 中測試,看看會不會出現已經認證的資訊,若沒有就請參考第一個參考網址中建立 xpi 的方法
    其他指令
  • 查看目前所有的憑證
    C:\> signtool -d db -L

    C:\> certutil -d db -L
  • 查看個別憑證的詳細資料
    C:\> certutil -d db -L -n myTestCert
  • 建立憑證
    C:\> certutil -R -s "CN=mycert,O=my organization,OU=my organization unit,ST=my state,C=my contry,UID=pete,E=myemail@mydomain.com" -p "my tel number " -a -d db
  • 匯入憑證
    C:\> certutil -A -n myTestCert -t "u,u,Cu" -i test.cer -d db
註一:不要懷疑,這的確是圖片沒錯,是我利用工具將其它必須的 dll 藏在其中,好讓我可以利用 hello 的空間來存放檔案。

註二:上述所有完整的 URL
  • ftp://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_3_10_RTM/
  • ftp://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_3_10_RTM/WINNT4.0_OPT.OBJ/nss-3.10.zip
  • http://photos1.blogger.com/img/86/5175/640/aeka.jpg

沒有留言: