Простой вопрос с довольно сложным ответом:
Как вы подписываете Java Midlet, чтобы вы могли загрузить его на мобильный телефон с меньшими запросами безопасности?
Простой вопрос с довольно сложным ответом:
Как вы подписываете Java Midlet, чтобы вы могли загрузить его на мобильный телефон с меньшими запросами безопасности?
Получить требуемое программное обеспечение
Импортировать существующий сертификат (если он есть)
keytool -import -alias {myalias} -file {mycertificate}
(я не смог проверить это, так как у меня нет надлежащего сертификата) keytool -list
, чтобы увидеть новый сертификат. keytool -export -alias {myalias} -file mycertificate.crt
Создать и импортировать новый (тестовый) сертификат
keytool -genkey -alias {myalias} -keyalg RSA -validity 365
keytool -list
, чтобы увидеть новый сертификат. keytool -export -alias {myalias} -file mycertificate.crt
C:\j2sdk1.4.2_08\bin>keytool -genkey -alias company -keyalg RSA -validity 365
Enter keystore password: password
What is your first and last name? [Unknown]: My Name
What is the name of your organizational unit? [Unknown]: company
What is the name of your organization? [Unknown]: company
What is the name of your City or Locality? [Unknown]: location
What is the name of your State or Province? [Unknown]: location2
What is the two-letter country code for this unit? [Unknown]: GB
Is CN=My Name, OU=company, O=company, L=location, ST=location2, C=GB correct? [no]: yes
Enter key password for (RETURN if same as keystore password):
Создайте и упакуйте приложение
javac
, чтобы создать свой MIDlet, уделяя особое внимание вашим параметрам classpath и bootclasspath (иначе превентификация не удастся). Я также установил цель в 1.1 и источник в 1.3 MIDlet-Jar-URL
Sign the application
jarsigner
jarsigner -keystore {mykeystore} -storepass (mypassword} {myjar} {myalias}
MIDlet-Jar-Size
в JAD JadTool.jar
из WTK java -jar JadTool.jar -addcert -alias {myalias} -storepass {mypassword} -keystore {mykeystore} -inputjad {myinputjad} -outputjad {myoutputjad}
JadTool.jar
java -jar JadTool.jar -addjarsig -alias {myalias} -jarfile {myjar} -storepass {mypassword} -keypass {mypassword} -keystore {mykeystore} -inputjad {myinputjad} -outputjad {myoutputjad}
Развертывание
Установка сертификата на телефоне
Общие проблемы
MIDlet-Permissions
может вызвать проблемы, но мне кажется, что это нормально для Nokia 6680/6630/6230i (может быть зависит от прошивки?) MIDlet-Permissions
является причиной множества проблем (особенно потому, что документация часто ошибочна/отсутствует или отличается в зависимости от телефона), попробуйте сначала оставить ее и добавить разрешения в один момент. Некоторые телефоны будут жаловаться на разрешения, которые они не поддерживают, некоторые будут игнорировать их.Доверенные домены
Неразрешенные проблемы
Пример JAD
MIDlet-Jar-URL: MyApp.jar
MIDlet-Jar-Size: 201365
MIDlet-Name: MyApp
MIDlet-Vendor: EC1M
MicroEdition-Profile: MIDP-2.0
MicroEdition-Configuration: CLDC-1.1
MIDlet-Icon: logo.png
MIDlet-Push-1: sms://:6553,net.ec1m.MyApp.midp.MyAppMIDlet,*
MIDlet-Description: MyApp MIDlet
MIDlet-Permissions: javax.microedition.io.PushRegistry,javax.microedition.io.Connector.sms...
MIDlet-Version: 1.0.67 MIDlet-1: MyApp, logo.png,net.ec1m.MyApp.midp.MyAppMIDlet
MIDlet-Certificate-1-1: MIICODCCAaECBEKqpfswDQYJKoZIhvcNAQEEBQAwYz...=
MIDlet-Jar-RSA-SHA1: EUsAch/.../hEZOsJsiCjBOhNs/3FSw4=
Пример манифеста
Manifest-Version: 1.0 MIDlet-Name: MyApp Created-By: 1.4.2_05-b04 (Sun Microsystems Inc.) MIDlet-Push-1: sms://:6553,net.ec1m.MyApp.midp.MyAppMIDlet,* MIDlet-1: MyApp, logo.png, net.ec1m.MyApp.midp.MyAppMIDlet MicroEdition-Configuration: CLDC-1.1 Ant-Version: Apache Ant 1.6.2 MIDlet-Icon: logo.png MIDlet-Vendor: EC1M MIDlet-Permissions: javax.microedition... MIDlet-Version: 1.0.67 MicroEdition-Profile: MIDP-2.0 MIDlet-Description: MyApp MIDlet
Пример ant Файл сборки Я добавил EC1M ant файл сборки на нашем веб-сайте (надеюсь) сделайте все это немного легче для вас. Другие ресурсы Этот FAQ на форуме Nokia стоит прочитать.
Шаг 1: Создайте запрос CSR, который может быть поднят
1) Creating keystore and using that generate CSR file.
2) Perform steps given by certificate authority and download CSR and private key files.
Шаг 2: Отправьте свою информацию в центр сертификации для проверки.
Шаг 3: Вам будет предоставлен сертификат для подписания кода.
Шаг 4: Вам необходимо загрузить промежуточный сертификат загрузки вместе с корневым сертификатом.
Шаг 5: Теперь вы будете иметь your_domain_name.crt, IntCertCA.crt, TrustedRoot.crt
Now you need to create a chained certificate by combining all above certificates.
1) Open a text editor (such as wordpad) and paste the entire body of each certificate into one text file in the following order:
The Primary Certificate - your_domain_name.crt
The Intermediate Certificate - IntCertCA.crt
The Root Certificate - TrustedRoot.crt
Make sure to include the beginning and end tags on each certificate. The result should look like this:
-----BEGIN CERTIFICATE-----
(Your Primary SSL certificate: your_domain_name.crt)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(Your Intermediate certificate: IntCertCA.crt)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(Your Root certificate: TrustedRoot.crt)
-----END CERTIFICATE-----
Save the combined file as your_domain_name.pem. The .pem file is now ready to use.
Step6: Импортируйте закрытый ключ в свой файл your_domain_name.pem
openssl pkcs12 -export -in your_domain_name.pem -inkey your_private_key.key -out output_file_name.p12 -name your_alias
NOTE: PLEASE REMOVE \ FROM FOLLOWING COMMANDS AND EXECUTE ( \ IS BASICALLY COMMAND CONTINUETY )
Step7: Создание хранилища ключей из файла output_file_name.p12
keytool -importkeystore \
-deststorepass changeit -destkeypass changeit -destkeystore your_domain_keystore.ks \
-srckeystore output_file_name.p12 -srcstoretype PKCS12 -srcstorepass your_store_password \
-alias your_alias
Step8: ПРИМЕЧАНИЕ: ПОЖАЛУЙСТА, ОБРАТИТЕСЬ К РЕЗУЛЬТАТУ ВАШЕГО ФАЙЛА JAD ПЕРЕД ТРИГЕРИРОВАНИЕМ СЛЕДУЮЩИХ КОМАНД.
Add your certificates to your your_midlet_name.jad file.
java -jar JadTool.jar -addcert -alias your_alias \
-storepass your_store_password \
-keystore your_domain_keystore.ks \
-inputjad your_midlet_name.jad -outputjad your_midlet_name.jad
Step9: ПРИМЕЧАНИЕ: ПОЖАЛУЙСТА, ОБРАТИТЕСЬ К РЕЗУЛЬТАТУ ВАШЕГО ФАЙЛА JAD ПЕРЕД ТРИГЕРИРОВАНИЕМ СЛЕДУЮЩИХ КОМАНД.
Sign your midlet, also use your_midlet_name.jad file generated from Step8.
java -jar JadTool.jar -addjarsig \
-alias your_store_password \
-storepass your_store_password \
-keypass your_store_password \
-keystore your_domain_keystore.ks \
-inputjad your_midlet_name.jad -outputjad your_midlet_name.jad