J2ME MIDlet(MIDP 2.0)代碼簽名證書操作指南
一、安裝準(zhǔn)備
創(chuàng)建和使用J2ME MIDlet代碼簽名證書需要Java環(huán)境支持。如果您還沒有JRE的安裝,則可以參考Java SE Runtime Environment(JRE)下載,下載地址:
http://www.oracle.com/technetwork/java/javase/downloads/index.html
Java命令行工具包含在JRE的安裝目錄下。您可以在JRE安裝目錄下的bin目錄中找到。如果您還沒有配置JAVA環(huán)境變量,則您需要在JRE安裝目錄下的bin目錄中運(yùn)行下文中的命令行。如果您已經(jīng)成功配置JAVA環(huán)境變量,則您可以在任意目錄下運(yùn)行Java命令行工具。
二、生成證書請求
1.生成keystore文件
生成密鑰庫文件keystore.jks需要使用JRE的keytool工具。命令行進(jìn)入JRE下的bin目錄,運(yùn)行keytool命令創(chuàng)建keystore.jks文件(示例中粗體部分為可自定義部分,請根據(jù)實(shí)際配置情況作相應(yīng)調(diào)整):
cd"C:\Program Files\Java\jre6\bin”
keytool-genkey-alias JavaCodesign-keyalg RSA-keysize 2048-keystore C:\keystore.jks-storepass password
請使用英文信息注冊J2ME MIDlet代碼簽名證書,中文注冊會導(dǎo)致信息顯示亂碼。
您的名字與姓氏是什么?//您單位/機(jī)構(gòu)/企業(yè)合法的名稱
您的組織單位名稱是什么?//部門名稱
您的組織名稱是什么?//您單位/機(jī)構(gòu)/企業(yè)合法的名稱
在輸入的主密碼時請直接回車,使其與keystore密碼保持一致
2.生成證書請求文件(CSR)
keytool-certreq-alias JavaCodesign-sigalg MD5withRSA-file C:\certreq.txt-keystore C:\keystore.jks-storepass password
備份密鑰庫文件keystore.jks,并稍后提交證書請求文件certreq.txt,等待證書簽發(fā)。
三、提交證書注冊信息
1.在線注冊
在您確認(rèn)訂購VeriSign代碼簽名證書后,VeriSign會從isporders verisign.com郵箱給您發(fā)送一封主題為“Please complete your Code Signing Certificate order”的證書注冊邀請郵件。
進(jìn)入郵件中的證書注冊鏈接:
2.確認(rèn)證書申請年限
請選擇證書申請方式。選擇“續(xù)訂”將把您將原有的未過期證書中剩余的有效期延續(xù)到更新的證書有效期中。
啟用本地CSR生成將使用您當(dāng)前的IE瀏覽器自動創(chuàng)建證書私鑰及證書請求。請不要選擇此選項(xiàng)。
3.提交CSR
打開證書請求文件certreq.txt(CSR文件),復(fù)制文件所有內(nèi)容,并粘貼到注冊表單中。
4.填寫公司信息
5.填寫公司聯(lián)系人信息
您在注冊頁面中填寫的單位聯(lián)系人必須是您公司的正式員工!
您在注冊頁面中填寫的所有聯(lián)系人的郵件地址不能是免費(fèi)的郵件地址!
6.填寫技術(shù)聯(lián)系人信息
技術(shù)聯(lián)系人郵箱將會用于接收證書的簽發(fā)郵件。
7.檢查并核對證書注冊信息
8.同意注冊條款
9.完成證書注冊申請
四、安裝證書并簽名MIDlet
1.導(dǎo)入代碼簽名證書CA證書
為了正確導(dǎo)入安裝您的證書,您需要首先下載Java代碼簽名證書CA證書文件并將其導(dǎo)入到您的keystore.jks文件中。
將證書簽發(fā)郵件中的從BEGIN到END結(jié)束的服務(wù)器證書內(nèi)容(包括“-----BEGIN CERTIFICATE-----”和“-----END CERTIFICATE-----”)粘貼到記事本等文本編輯器中,并修改文件擴(kuò)展名,保存為mycert.cer文件
請首先將CA證書和代碼簽名證書mycert.cer文件復(fù)制到命令行中指定的位置。
進(jìn)入JDK安裝目錄下的bin目錄,運(yùn)行keytool命令。
keytool-list-keystore C:\keystore.jks-storepass password
查詢到PrivateKeyEntry屬性的私鑰別名(alias)為javacodesign。記住該別名,在稍后導(dǎo)入代碼簽名證書時需要用到。
注意,導(dǎo)入證書時,一定要使用生成證書請求文件時備份的keystore.jks文件。keystore.jks文件丟失或生成新的keystore.jks文件,都將無法正確導(dǎo)入您的代碼簽名證書。
導(dǎo)入根證書
keytool-import-alias root-keystore C:\keystore.jks-trustcacerts-storepass password-file C:\root.cer
導(dǎo)入第一張中級CA證書
keytool-import-alias intermediate1-keystore C:\keystore.jks-trustcacerts-storepass password-file C:\intermediate1.cer
導(dǎo)入第二張中級CA證書
keytool-import-alias intermediate2-keystore C:\keystore.jks-trustcacerts-storepass password-file C:\intermediate2.cer
2.導(dǎo)入代碼簽名證書
keytool-import-alias JavaCodesign-keystore C:\keystore.jks-trustcacerts-storepass password-file C:\mycert.cer
導(dǎo)入代碼簽名證書時,代碼簽名證書的別名必須和私鑰別名一致。請留意導(dǎo)入CA證書和導(dǎo)入服務(wù)器證書時的提示信息,如果您在導(dǎo)入mycert.cer證書時使用的別名與私鑰別名不一致,將提示“認(rèn)證已添加至keystore中”而不是應(yīng)有的“認(rèn)證回復(fù)已安裝在keystore中”。
3.簽名MIDlet
在開始簽名您的MIDlet文件之前,請先復(fù)制JadTool.jar文件到Jre安裝目錄下的bin目錄,然后再執(zhí)行簽署MIDlet命令。以下示例中,原始文件為test.jar及test.jad,中間過渡文件為temjad.jad,最終獲取的簽名文件為finaltest.jad。
往jad文件中添加簽名證書:
java-jar JadTool.jar-addcert-alias JavaCodesign-keystore C:\keystore.jks-storepass password-inputjad C:\test.jad-outputjad C:\tempjad.jad
為jad文件添加私鑰簽名:
java-jar JadTool.jar-addjarsig-alias JavaCodesign-keystore C:\keystore.jks-keypass password-jarfile C:\test.jar-inputjad C:\tempjad.jad-outputjad C:\finaltest.jad
簽名完成后,您可以使用記事本等文本編輯器打開finaltest.jad文件。MIDlet-Certificate-1-1后添加的就是您的簽名證書代碼,在MIDlet-Certificate-1-2、MIDlet-Certificate-1-3、MIDlet-Certificate-1-4后添加的是VeriSign CA證書代碼,而MIDlet-Jar-RAS-SHA1后添加的則是使用您的證書私鑰簽名JAD代碼后的簽名摘要。
五、備份證書密鑰庫文件
備份您的密鑰文件keystore.jks文件及其保護(hù)密碼即可完成證書的備份。
在您備份您的keystore文件之前,建議使用list命令查詢keystore.jks文件內(nèi)容,以保障備份的文件正確無誤。
Keytool-list-keysotre keystore.jks-storepass password
測試簽名結(jié)果
將finaltest.jad和test.jar復(fù)制到您的目標(biāo)手機(jī)上,通過jad文件來安裝您的Java程序,測試您的代碼簽名。