J2ME, problem z połączniem https

Witam, dostałem za zadanie napisać klienta mobilnego w j2me który będzie łączył się z serwerem za pośrednictwem https. Dostałem też certyfikat severa w postaci pliku cer.

Kiedy się połączę :

String url="https:\..."; HttpConection httpCon; httpCon=(HttpsConnection)Connector.open(url);

i probje użyć

httpCons.getSecurityInfo()

bądź

DataInputStream dis=null; dis=httpCon.openDataInputStream();

otrzymuje błąd :

java.io.IOException: Algorithm Id parsing failed at com.sun.midp.ssl.X509Certificate.getAlg(X509Certificate.java:446) at com.sun.midp.ssl.X509Certificate.generateCertificate(X509Certificate.java:830) at com.sun.midp.ssl.Handshake.parseChain(Handshake.java:194) at com.sun.midp.ssl.Handshake.rcvCert(Handshake.java:444) at com.sun.midp.ssl.Handshake.doHandShake(Handshake.java:936) at com.sun.midp.ssl.SSLStreamConnection.<init>(SSLStreamConnection.java:150) at com.sun.midp.ssl.SSLStreamConnection.<init>(SSLStreamConnection.java:102) at com.sun.midp.io.j2me.https.Protocol.connect(Protocol.java:322) at com.sun.midp.io.j2me.http.Protocol.streamConnect(Protocol.java:1653) at com.sun.midp.io.j2me.http.Protocol.startRequest(Protocol.java:1634) at com.sun.midp.io.j2me.http.Protocol.sendRequest(Protocol.java:1561) at com.sun.midp.io.j2me.http.Protocol.sendRequest(Protocol.java:1517) at com.sun.midp.io.j2me.https.Protocol.getSecurityInfo(+8) at HttpsTest.Midlet.https(Midlet.java:81) at HttpsTest.Midlet.startApp(Midlet.java:33) at javax.microedition.midlet.MIDletProxy.startApp(MIDletProxy.java:43) at com.sun.midp.midlet.Scheduler.schedule(Scheduler.java:374) at com.sun.midp.main.Main.runLocalClass(Main.java:466) at com.sun.midp.main.Main.main(Main.java:120)

Podczas swoich poszukiwań nie trafiłem w internecie na nic pomocnego apropo tego błędu. Może wy coś o nim wiecie?

Kolejne pytanie które chciałbym zadać dotyczy plików cer. W systemie Windows zainstalowanie ceryfikatu jest dosc łatwe (prawy -> zainstaluj) i już działa. Jak rzecz ma się z telefonami i w szczególności z emulatorem? Wyczytałem i wypróbowałem keytool i próbowałem utworzyć keystore ale nie chciało to wogołe zadziałać; tak samo nic nie dało używanie wbudowanego zarządzania certyfikatami WTK (Manage Certificates). Czy jest możliwość "zaaplikowania" pliku cer wewnątrz midletu (tj. wkompilować do w jara, i przy probie połączenia z https odczytywać go i używać)? Możliwe jest, że mój pierwszy problem wynika z nierozwiązania drugiego :)

Horazon

1 rok, 9 miesięcy temu | edytowane przez: Horazon 1

Zaloguj się, aby dodać swoją odpowiedź