j2meでhttpsConnectionを取得しようとしています(以下の構成の一部<必要に応じて、さらに提供できます)
<j2me.midlet.configuration>CLDC-1.1</j2me.midlet.configuration>
<j2me.midlet.profile>MIDP-2.0</j2me.midlet.profile>
WTKは2.5.2_01です
HttpsConnection connection = (HttpsConnection)Connector.open("https://myURL/user/login", Connector.READ);`
connection.open()で私は得る
[WtkRun] javax.microedition.pki.CertificateException: Certificate in a chain was not issued by the next authority in the chain
[WtkRun] at com.sun.midp.ssl.X509Certificate.verifyChain(+115)
[WtkRun] at com.sun.midp.ssl.Handshake.parseChain(+111)
[WtkRun] at com.sun.midp.ssl.Handshake.rcvCert(+114)
[WtkRun] at com.sun.midp.ssl.Handshake.doHandShake(+96)
[WtkRun] at com.sun.midp.ssl.SSLStreamConnection.<init>(+173)
[WtkRun] at com.sun.midp.ssl.SSLStreamConnection.<init>(+12)
[WtkRun] at com.sun.midp.io.j2me.https.Protocol.connect(+214)
[WtkRun] at com.sun.midp.io.j2me.http.Protocol.streamConnect(+57)
[WtkRun] at com.sun.midp.io.j2me.http.Protocol.startRequest(+12)
[WtkRun] at com.sun.midp.io.j2me.http.Protocol.sendRequest(+38)
[WtkRun] at com.sun.midp.io.j2me.http.Protocol.sendRequest(+6)
[WtkRun] at com.sun.midp.io.j2me.http.Protocol.openInputStream(+9)
[WtkRun] at nkclause.PostClause.a(+162)
[WtkRun] at nkclause.PostClause.startApp(+473)
[WtkRun] at javax.microedition.midlet.MIDletProxy.startApp(+7)
[WtkRun] at com.sun.midp.midlet.Scheduler.schedule(+270)
[WtkRun] at com.sun.midp.main.Main.runLocalClass(+28)
[WtkRun] at com.sun.midp.main.Main.main(+80)
証明書の詳細を取得できたので、発行者は
[WtkRun] C=US;O=Thawte, Inc.;CN=Thawte SSL CA
同じ発行者がブラウザストレージに存在します。問題なくURLにアクセスしています。
私もいくつかのハックをしようとしました
connection = (StreamConnection) Connector.open("https://myURL/user/login:443;CertificateErrorHandling=warn;HandshakeCommentary=on", Connector.READ);
ただし、例外は同じです。
私はこのケースを処理するためのアプローチを模索しています:1)チェーンの2番目の権限がWTKエミュレーターに知られていない可能性があります。ブラウザでは、証明書の発行者を視覚的に確認できますが、wtkでintを実行するにはどうすればよいですか?2)SSL証明書の問題を無視する方法はありますか?古い答えは「いいえ」と言っていますが、それ以来何かが変わったのではないでしょうか。