Skip to content

Instantly share code, notes, and snippets.

@jcaddel
Created November 13, 2025 21:40
Show Gist options
  • Select an option

  • Save jcaddel/ed483101a74a8d129bca159d937d3e6d to your computer and use it in GitHub Desktop.

Select an option

Save jcaddel/ed483101a74a8d129bca159d937d3e6d to your computer and use it in GitHub Desktop.
import okhttp3.OkHttpClient;
import javax.net.ssl.*;
import java.util.function.Supplier;
public class HttpClientSupplier implements Supplier<OkHttpClient> {
public OkHttpClient get() {
try {
TrustManager[] managers = {new SimpleTrustManager()};
SSLContext sslContext = SSLContext.getInstance("SSL");
sslContext.init(null, managers, new java.security.SecureRandom());
SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory();
OkHttpClient.Builder builder = new OkHttpClient.Builder();
builder.sslSocketFactory(sslSocketFactory, (X509TrustManager) managers[0]);
builder.hostnameVerifier(new SimpleHostnameVerifier());
return builder.build();
} catch (Exception e) {
throw new IllegalStateException(e);
}
}
private static final class SimpleHostnameVerifier implements HostnameVerifier {
public boolean verify(String hostname, SSLSession session) {
return true;
}
}
private static final class SimpleTrustManager implements X509TrustManager {
@Override
public void checkClientTrusted(java.security.cert.X509Certificate[] chain, String authType) {
}
@Override
public void checkServerTrusted(java.security.cert.X509Certificate[] chain, String authType) {
}
@Override
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return new java.security.cert.X509Certificate[]{};
}
}
}
@jcaddel
Copy link
Author

jcaddel commented Nov 13, 2025

Code snippet that creates an OkHttpClient that trusts all SSL certificates. Exceedingly useful for testing scenarios and lower environments that have "fake" SSL certificates issued internally.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment