Re: [問題] Android 7.0 https無法連線的問題

看板AndroidDev作者 (joycece)時間7年前 (2017/03/15 10:40), 編輯推噓1(103)
留言4則, 2人參與, 最新討論串4/4 (看更多)
糗了 我的程式裡面本來就有加了 不知道是否還有其他線索可指點一下 感謝~ public int init() throws InterruptedException { KeyStore ks; try { ks = KeyStore.getInstance("BKS"); String pkres; pkres = GlbArgs.getString("SslKey"); ks.load(GlbArgs.getRes().openRawResource(GlbArgs.getResId(pkres)), "000000".toCharArray()); TrustManagerFactory tmf = TrustManagerFactory .getInstance(KeyManagerFactory.getDefaultAlgorithm()); tmf.init(ks); SSLContext ctx = SSLContext.getInstance("TLS"); //SSLContext ctx = SSLContext.getDefault(); ctx.init(null, tmf.getTrustManagers(), null); SSLSocketFactory sslFact = ctx.getSocketFactory(); mSock = (SSLSocket) sslFact.createSocket(); mSock.setEnabledCipherSuites(mSock.getSupportedCipherSuites()); String[] s={"TLSv1.2"}; mSock .setEnabledProtocols(s); } catch (IOException | NoSuchAlgorithmException | CertificateException | KeyStoreException | KeyManagementException e) { e.printStackTrace(); return ERR_TCPSSL_INIT; } return ERR_OK; } ※ 引述《benedict76 (ben)》之銘言: : 我有遇過Android m可以但是在N不行, : 後來發現N把RC4 cipher suites disable, : 結果我連的server要的cipher suite預設都被 : 關掉,所以在我連線的時候,在sslsocket : 哪邊setenabledciphersuites,傳 : getsupportedciphersuites()進去,後來就成 : 功連線,您可以試試看。 : ※ 引述《joycece (joycece)》之銘言: : : 我也遇上了類似的問題 : : 在Android 5 & 6的 手機上可以正常SSL連線(TLS1.2) : : 但在Android 7.1.1的手機就發生以下錯誤 : : javax.net.ssl.SSLHandshakeException: : : java.security.cert.CertPathValidatorException: : : Trust anchor for certification path not found. : : 想請問是否能夠給個方向怎樣去修正或避免這個問題發生? : : 謝謝 : ----- : Sent from JPTT on my Asus ASUS_Z017D. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.216.130.205 ※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1489545620.A.1D1.html

03/15 10:56, , 1F
您這是用自己的certificate嗎?不知道是不是要用netwo
03/15 10:56, 1F

03/15 10:56, , 2F
rkconfigure 來做
03/15 10:56, 2F

04/08 09:04, , 3F
04/08 09:04, 3F

04/08 09:04, , 4F
cles/security-config.html#manifest
04/08 09:04, 4F
文章代碼(AID): #1OoAcK7H (AndroidDev)
文章代碼(AID): #1OoAcK7H (AndroidDev)