未簽名的 MIDlet 存取網路、SMS、PIM、檔案系統等敏感 API 時,手機會彈出「允許/拒絕」提示,嚴重影響使用者體驗。經 CA 簽名後,裝置可驗證發布者身份,授予「可信任第三方」或「製造商」權限,實現靜默存取。
| CA | 價格(年) | 通用性 | 備註 |
|---|---|---|---|
| VeriSign (現 Symantec/DigiCert) | ~$400 | 最高,幾乎所有 Java 手機支援 | 企業級首選 |
| Thawte | 較便宜 | 略低,部分 Nokia S40/S60 機型不支援 | 成本敏感專案可考慮 |
keytool 或 OpenSSL 產生金鑰對與 CSR (PKCS#10 格式),貼上 -----BEGIN NEW CERTIFICATE REQUEST----- ... 內容。# 1. 產生金鑰對
keytool -genkeypair -alias mymidlet -keyalg RSA -keysize 2048 \
-keystore mykeystore.jks -storepass changeit -keypass changeit \
-dname "CN=My Company, OU=Dev, O=My Company, L=City, ST=Province, C=CN"
# 2. 產生 CSR
keytool -certreq -alias mymidlet -keystore mykeystore.jks \
-storepass changeit -file mymidlet.csr
# 3. 送審後,收到回覆憑證 (reply.cer) 匯入
keytool -importcert -alias mymidlet -file reply.cer -keystore mykeystore.jks -storepass changeit
RSA-SHA1(JAR)。MIDlet-Jar-RSA-SHA1: <Base64簽名>MIDlet-Certificate-1-1: <Base64憑證鏈>MIDlet-Permissions / MIDlet-Permissions-Opt,與簽名權限等級一致。隨著 Java ME 退場,新專案建議轉向 Android/iOS 原生或跨平台框架 (Flutter/React Native),避免維護舊式簽名流程。