title: Android Retrofit2 Trust anchor for certification path not found
body: <p>i have an API that uses SLL certification when i open api link google chrome ask me for login with username and password to authorized me to connect with website
  API Link : <a href="https://45.55.43.15:9090/api/machine?page=0&amp;size=10" rel="nofollow noreferrer">https://45.55.43.15:9090/api/machine?page=0&amp;size=10</a></p>
  
  <p>My question is how can implement this using OkHttp3 and Retrofit2 </p>
  
  <p>here is my trial </p>
  
  <pre><code> public class RestAdapter {
  
  
      Context context;
      public static final String BASE_URL = "https://45.55.43.15:9090/api/";
  
  
      private OkHttpClient okHttpClient;
      private Authenticator authenticator = new Authenticator() {
          @Override
          public Request authenticate(Route route, Response response) {
              return null;
          }
      };
  
  
      private RestAdapter() {
      }
  
      public void setAuthenticator(Authenticator authenticator) {
          this.authenticator = authenticator;
      }
  
  
      public static class Builder {
          String email, password;
          RestAdapter apiManager = new RestAdapter();
  
          public Builder setAuthenticator(Authenticator authenticator) {
              apiManager.setAuthenticator(authenticator);
              return this;
          }
  
          public RestAdapter build(String param_email, String param_password) {
              this.email = param_email;
              this.password = param_password;
              return apiManager.newInstance(email, password);
          }
  
      }
  
      public class RequestTokenInterceptor implements Interceptor {
          String email, password;
          String credentials, basic;
          public RequestTokenInterceptor(String email, String password) {
              this.email = email;
              this.password = password;
              credentials = email + ":" + password;
              basic = "Basic " + Base64.encodeToString(credentials.getBytes(), Base64.NO_WRAP);
          }
  
  
  
          @Override
          public Response intercept(Interceptor.Chain chain) throws IOException {
              Request original = chain.request();
              Request.Builder builder = original.newBuilder()
                      .addHeader("Authorization", basic)
                      .method(original.method(), original.body());
              return chain.proceed(builder.build());
          }
      }
  
      private RestAdapter newInstance(String email, String password) {
          HttpLoggingInterceptor logging = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() {
              @Override
              public void log(String message) {
                  Log.e("https", message);
              }
          });
          logging.setLevel(HttpLoggingInterceptor.Level.BODY);
  
  
          okHttpClient = new OkHttpClient.Builder()
                  .addInterceptor(logging)
                  .addInterceptor(new RequestTokenInterceptor(email, password))
                  .authenticator(authenticator)
                  .build();
  
  
          return this;
      }
  
  
      public &lt;T&gt; T createRest(Class&lt;T&gt; t) {
          Retrofit retrofit = new Retrofit.Builder()
                  .baseUrl(BASE_URL)
                  .addConverterFactory(GsonConverterFactory.create())
                  .client(okHttpClient)
                  .build();
  
          return retrofit.create(t);
      }
   }
  </code></pre>