gpt4 book ai didi

ssl - 为什么 WTK 不允许我与某些可从浏览器访问的 URL 建立 https 连接

转载 作者:太空宇宙 更新时间:2023-11-03 13:28:36 27 4
gpt4 key购买 nike

我正在尝试在 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)

我已经设法获得了证书的详细信息,所以它是 Issuer 是

[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) 可能是 WTK 模拟器不知道链中的第二个权限。在浏览器中,我可以直观地检查证书颁发者,但是我如何在 wtk 中执行 int?2) 有没有办法忽略 ssl 证书的麻烦?旧的答案说不,但自那时以来可能发生了一些变化?

最佳答案

我已经有一段时间没有专门研究 wtk 仿真器了,但是如果您只是需要它来进行仿真,我相信您只需将证书添加到您的 java 钥匙串(keychain)中,它就会被接受。由于 WTK 不需要可用的 J2SE VM,因此您可能不会谈论 J2SE keytool。

我的第一步是查看 ${WTK_LOCATION}/bin/mekeytool。对于不同的手机,您将执行不同的操作来接受自定义证书,因此解决方案可能非常针对特定手机。

我很确定 J2ME 中没有任何更改以编程方式忽略证书。如果您想这样做,为什么不使用 http 而不是 https?

关于ssl - 为什么 WTK 不允许我与某些可从浏览器访问的 URL 建立 https 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13841899/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com