title: SSLHandshakeException - Chain chain validation failed, how to solve?
body: <p>in my application I am trying to do a HTTPS POST request to my server.
  However, I keep getting SSLHandshakeException - Chain chain validation failed, all the time. I tried to send a request using POSTMAN and I got a response from the server. What can be causing this error when I try to send the request from the application? </p>
  
  <p>Here a code snippet where I try to send the post request:</p>
  
  <pre><code>   public static JSONObject getDataLibConfiguration(Context context) throws HttpRequestException {
  
      int statusCode = 0;
  
      JSONObject commonInformation;
      HttpsURLConnection connection = null;
  
      try {
  
          commonInformation = ConfigurationProcessor.getCommonInformation(context);
          if (commonInformation == null) {
              return null;
          }
  
          URL url = new URL(BuildConfig.SERVER_CONFIG_URL);
          if (BuildConfig.DEBUG) {
              LogUtils.d(TAG, "url = " + url.getPath());
          }
  
          connection = getHttpsConnection(url);
          connection.setDoOutput(true);
          connection.setDoInput(true);
          connection.setRequestMethod("POST");
          connection.setRequestProperty("Content-Type", "application/json; charset=UTF-8");
          connection.setRequestProperty("Content-Encoding", "gzip");
  
          byte[] gzipped = HttpUtils.gzip(commonInformation.toString());
          cos = new CountingOutputStream(connection.getOutputStream()); //&lt;-- This is where I get the exception
          cos.write(gzipped);
          cos.flush();
  
          statusCode = connection.getResponseCode();
          // More code her
   }
  
  private static HttpsURLConnection getHttpsConnection(URL url) throws IOException, GeneralSecurityException {
  
          HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
  
          try {
              SSLContext sslContext = SSLContext.getInstance("TLS");
              MatchDomainTrustManager myTrustManager = new MatchDomainTrustManager(url.getHost());
              TrustManager[] tms = new TrustManager[]{myTrustManager};
              sslContext.init(null, tms, null);
              SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory();
              connection.setSSLSocketFactory(sslSocketFactory);
          } catch (AssertionError ex) {
              if (BuildConfig.DEBUG) {
                  LogFileUtils.e(TAG, "Exception in getHttpsConnection: " + ex.getMessage());
              }
              LogUtils.e(TAG, "Exception: " + ex.toString());
          }
          return connection;
      }
  </code></pre>