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ź