Skip to content

Commit 52ff2e8

Browse files
committed
Fix CertPathValidatorException: Trust anchor for certification path not found.
1 parent e7cc74e commit 52ff2e8

1 file changed

Lines changed: 39 additions & 0 deletions

File tree

app/src/main/java/org/houxg/leamonax/network/ApiProvider.java

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,14 @@
1111
import org.houxg.leamonax.network.api.UserApi;
1212

1313
import java.io.IOException;
14+
import java.util.concurrent.TimeUnit;
15+
16+
import javax.net.ssl.HostnameVerifier;
17+
import javax.net.ssl.SSLContext;
18+
import javax.net.ssl.SSLSession;
19+
import javax.net.ssl.SSLSocketFactory;
20+
import javax.net.ssl.TrustManager;
21+
import javax.net.ssl.X509TrustManager;
1422

1523
import okhttp3.HttpUrl;
1624
import okhttp3.Interceptor;
@@ -70,6 +78,37 @@ public void log(String message) {
7078
builder.addNetworkInterceptor(interceptor);
7179
builder.addNetworkInterceptor(new StethoInterceptor());
7280
}
81+
final TrustManager[] trustAllCerts = new TrustManager[]{
82+
new X509TrustManager() {
83+
@Override
84+
public void checkClientTrusted(java.security.cert.X509Certificate[] chain, String authType) {
85+
}
86+
87+
@Override
88+
public void checkServerTrusted(java.security.cert.X509Certificate[] chain, String authType) {
89+
}
90+
91+
@Override
92+
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
93+
return new java.security.cert.X509Certificate[]{};
94+
}
95+
}
96+
};
97+
try {
98+
final SSLContext sslContext = SSLContext.getInstance("SSL");
99+
sslContext.init(null, trustAllCerts, new java.security.SecureRandom());
100+
final SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory();
101+
builder.sslSocketFactory(sslSocketFactory, (X509TrustManager) trustAllCerts[0]);
102+
builder.hostnameVerifier(new HostnameVerifier() {
103+
@Override
104+
public boolean verify(String hostname, SSLSession session) {
105+
return true;
106+
}
107+
});
108+
} catch (Exception e) {
109+
e.printStackTrace();
110+
}
111+
builder.connectTimeout(20, TimeUnit.SECONDS).readTimeout(20, TimeUnit.SECONDS);
73112
OkHttpClient client = builder.build();
74113
mApiRetrofit = new Retrofit.Builder()
75114
.baseUrl(host + "/api/")

0 commit comments

Comments
 (0)