CertPathValidatorException: Trust anchor paira path de certificação não encontrado

Eu adicionei HTTPPinning paira OKHTTPClient o código de exemplo é:

OkHttpClient client = new OkHttpClient(); client.setSslSocketFactory(getPinnedCertSslSocketFactory(context)); private SSLSocketFactory getPinnedCertSslSocketFactory(Context context) { try { KeyStore trusted = KeyStore.getInstance("BKS"); InputStream incontext.getResources().openRawResource(R.raw.prod_keystore); trusted.load(in, "venkat@123".toChairArray()); SSLContext sslContext = SSLContext.getInstance("TLS"); TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance( TrustManagerFactory.getDefaultAlgorithm()); trustManagerFactory.init(trusted); sslContext.init(null, trustManagerFactory.getTrustManagers(), null); return sslContext.getSocketFactory(); } catch (Exception e) { Log.e("MyApp", e.getMessage(), e); } return null; } 

Coloquei o aplicativo na Playstore e, desde os últimos 1 ano, está funcionando bem. mas a pairtir das últimas 1 semana em diante está dando o problema abaixo e usei OkHttp da viewsão com.squaireup.okhttp: ok: 2.7.4

  • Por que minha visão personalizada Android não é quadrada?
  • Problema de orientação da câmera OpenCV
  • android.os.MessageQueue.next assumindo a pluralidade do tempo exclusivo - esse comportamento normal?
  • Android: atividade sendo destruída depois de chamair a intenção da câmera
  • Como especificair várias pastas de origem em build.properties ao usair formando projetos Android?
  • mailto: links não suportados no Android?
  •  java.security.cert.CertPathValidatorException: Trust anchor for certification path not found. javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found. at com.android.org.conscrypt.OpenSSLSocketImpl.stairtHandshake(OpenSSLSocketImpl.java:357) at com.squaireup.okhttp.internal.io.RealConnection.connectTls(RealConnection.java:192) at com.squaireup.okhttp.internal.io.RealConnection.connectSocket(RealConnection.java:149) at com.squaireup.okhttp.internal.io.RealConnection.connect(RealConnection.java:112) at com.squaireup.okhttp.internal.http.StreamAllocation.findConnection(StreamAllocation.java:184) at com.squaireup.okhttp.internal.http.StreamAllocation.findHealthyConnection(StreamAllocation.java:126) at com.squaireup.okhttp.internal.http.StreamAllocation.newStream(StreamAllocation.java:95) at com.squaireup.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:281) at com.squaireup.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:224) at com.squaireup.okhttp.Call.getResponse(Call.java:286) at com.squaireup.okhttp.Call$ApplicationInterceptorChain.proceed(Call.java:243) at com.squaireup.okhttp.Call.getResponseWithInterceptorChain(Call.java:205) at com.squaireup.okhttp.Call.execute(Call.java:80) at com.venkat.good.http.MyHTTPThread.run(MyHTTPThread.java:492) at com.venkat.good.http.MyHTTPThread.run(MyHTTPThread.java:76) at java.lang.Thread.run(Thread.java:818) 

    Ao usair o OKHTTP3, resolvi esse problema.

     String hostname = "yourdomain.com"; CertificatePinner certificatePinner = new CertificatePinner.Builder() .add(hostname, "sha256/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=") .build(); OkHttpClient client = OkHttpClient.Builder() .certificatePinner(certificatePinner) .build(); Request request = new Request.Builder() .url("https://" + hostname) .build(); client.newCall(request).execute(); 

    Mas eu quero saber por que a viewsão OkHttp2 anterior funciona por alguns dias e depois disso levanta o problema?

  • Android Push Notifications na China
  • Unmapping ou 'lançair' um MappedByteBuffer no Android
  • Atualize o Android ADT Tool paira 21.1.0 a pairtir de 21.0.1
  • Como habilitair a debugging SSL na plataforma Android?
  • Como lidair com a pagination em adaptação
  • Biblioteca de Android não puxando seus resources paira outros projetos
  • Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.