Monday, July 26, 2021

How to Fix Certificate Errors in Apache HttpClient?

 Error: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException:

PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

Solution: We might be using HTTP Client...override ur client object with this method :

 try {
          TrustManager[] trustAllCerts = { new X509TrustManager() {
                public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {}
                
                public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {}
                
                public X509Certificate[] getAcceptedIssuers() {
                  return new X509Certificate[0];
                }
              } };
          SSLContext sslContext = SSLContext.getInstance("SSL");
          sslContext.init(null, trustAllCerts, new SecureRandom());
          SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory();
          String[] ciphers = SSLContext.getDefault().getDefaultSSLParameters().getCipherSuites();
          ciphers = sslContext.getSupportedSSLParameters().getCipherSuites();
          OkHttpClient.Builder builder = new OkHttpClient.Builder();
          builder.sslSocketFactory(sslSocketFactory, (X509TrustManager)trustAllCerts[0]);
          builder.hostnameVerifier(new HostnameVerifier() {
                public boolean verify(String hostname, SSLSession session) {
                  return true;
                }
              });
          builder.connectTimeout(90L, TimeUnit.SECONDS);
          builder.readTimeout(90L, TimeUnit.SECONDS);
          builder.writeTimeout(90L, TimeUnit.SECONDS);
          OkHttpClient okHttpClient = builder.build();
          return okHttpClient;
        } catch (Exception e) {
          LogManager.traceErrMsg("Sample", methodName, "Response : " + e.getMessage());
          throw e;
        } 

No comments:

Post a Comment