Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java ME (J2ME) > Мидлет + SSL


Автор: Modul 6.5.2008, 20:36
Салют всем !

Кто-нибудь знает как можно работать из мидлета
например с Gmail...

Че-то не нашел ничего в Инете. smile 

Автор: Modul 7.5.2008, 23:08
Не ожидал такой реакции  smile 

Самое интересное, что море литературы накачал...

2-й день изучаю мидлеты...



Через socket понятно и заработало:
Код


 sc = (SocketConnection) Connector.open("socket://"+smtpServerAddress+":25"); 

 


Тем более и примеры тут были с SMTP, но Gmail... сами понимаете !!!


Но вот SSL+socket ??? smile 

Автор: Dummy 8.5.2008, 09:49
Есть в MIDP класс SecureConnection, который как раз и отвечает за безопасные сокеты. Подключение открывается по  урлу  вида "ssl://host:port"

Может быть, вот это поможет: http://forums.java.net/jive/thread.jspa?messageID=247131

Хотя после некоторого изучения Gmail-мидлета пришел к выводу, что он как будто бы и не использует класс SecureConnection.

Автор: Modul 8.5.2008, 23:29
Все правильно ты написал  smile 

Проверил - работает прекрасно !!!

Код

StreamConnection
SecureConnection



Мидлеты для меня в новинку - думал тут как вывести результат...

Автор: Modul 10.5.2008, 13:22
Начитался тут про сертификаты... smile 

http://forum.ixbt.com/post.cgi?id=annc:16:32033

Цитата

Насчет gmail.com - вот решение:
Gmail.com применяет сейчас SSL-сертификаты, подписанные Equifax и Thawte. 
Для smtp.gmail.com нужно установить в телефон сертификат Thawte Premium Server CA, 
а для pop.gmail.com - сертификат Equifax Secure Certificate Authority.


Вроде понятно, что для SSL в телефоне должны быть сертификаты, 
подписанные Equifax и Thawte.

Для своего Gmail-клиента рекомендуют:
Цитата

Для работы приложения Gmail необходимо следующее: 
устройство с поддержкой J2ME (Java) MIDP2, настроенное для доступа к данным; 
услуга передачи данных;
На вашем телефоне должен быть сертификат Verisign Class 3 с серийным номером 70:BA:E4:1D:10:D9:29:34:B6:38:CA:7B:03:CC:BA:BF.


Cсылки:
http://mail.google.com/support/bin/answer.py?answer=52848&topic=13296
http://mail.google.com/support/bin/answer.py?answer=78526&topic=13296


Вопросы возникли:

1) Мой мидлет должен быть вообще подписан именно Verisign Class 3 
(или это сертификат безопасности Gmail только для своего Gmail-мидлета) ?
2) Или достаточно Verisign Class 3 положить в телефон для работы с Gmail ?
3) Тогда всего нужно 2 или 3 сертификата 
Equifax и Thawte для SSL + для мидлета ?

Спасибо !


Автор: Dummy 11.5.2008, 15:10
Насколько я понимаю, сертификат, которым подписан мидлет, не имеет отношения к SSL-сертификату. Мидлетный сертификат нужен для AMS, чтобы поместить его в тот или иной домен безопасности и наделить доступом к API. SSL-сертификат используется при рукопожатии клиента и сервера, при этом сервер понятия не имеет о том, каким сертификатом был подписан мидлет для установки. Таким образом, для успешного использования SSL при уже установленном мидлете нужно установить только сертификаты, которые нужны Gmail-серверам. Конечно, для того, чтобы установить мидлет, его нужно для начала подписать сертификатом, который может пройти аутентификацию при помощи одного из корневых сертификатов, установленных на телефоне. Получается, что ответы такие:

Цитата

1) Мой мидлет должен быть вообще подписан именно Verisign Class 3 


Нет, не обязательно. Главное, чтобы он подписан сертификатом, который аутентифицирует его в домен, где разрешено использование SSL-подключений.

Цитата


2) Или достаточно Verisign Class 3 положить в телефон для работы с Gmail ?
3) Тогда всего нужно 2 или 3 сертификата 
Equifax и Thawte для SSL + для мидлета ?


Да

Автор: Modul 11.5.2008, 17:01
Снова спасибо Dummy за ответ !!! smile 

Насчет проги от Gmail у меня мысли были похожие, но опыта с мидлетами и телефонами
совсем нет...
T.e. это сертификат Gmail для своего (разработанного ими) мидлета.

Еще вопрос:

А как тогда мидлет (самописный, мой для Gmail) работает на эмуляторе
без этих 2-х сертификатов ???

Шлет себе почту с Gmail на Rambler спокойно !

Но ведь SSL без сертификатов на сервере и клиенте не работает !!!

Автор: Dummy 11.5.2008, 23:37
Сервер и для железки, и для эмулятора один, поэтому с его стороны все необходимое для принятия SSL-подключений имеется.

А в случае с эмулятором для открытия SSL-подключения используются средства платформы, на которой эмулятор работает (Windows, Linux, Solaris, ... ). Раз SSL-подключение успешно устанавливается, значит, необходимые сертификаты уже установлены на платформе.

Например, у меня, когда я в Firefox иду по этой ссылке:

http://www.verisign.com/cgi-bin/support/rootcert/getrootcert.cer

мне выкидывается сообщение: "The certificate is already installed as a certificate authority", т. е. данный сертификат уже установлен как корневой в системе.

Да, и еще - видимо, информация о необходимых сертификатах, которые ты получил forum.ixbt.com и с mail.google.com, отличается, поэтому стоит оценить, где она свежее, дабы избежать попыток использовать для работы с Gmail по SSL сертификаты, которые уже не актуальны (либо Verisign для smtp & pop3, либо пара Thawte для smtp & Equifax для pop3).

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)