title: Hit javax.net.ssl.SSLHandshakeException when cordova build android --angular
body: <p>Good day,</p>
  
  <p>I am trying to run <code>cordova build android --angular</code> command. However, when I run it, I am hitting <code>SSLHandshakeException</code> when it trying to downloading <a href="https://services.gradle.org/distributions/gradle-4.10.3-all.zip" rel="nofollow noreferrer">https://services.gradle.org/distributions/gradle-4.10.3-all.zip</a>
  , I am guessing there is something wrong with my <code>gradle repo setting</code>, so I add the <code>google()</code> and <code>jcenter()</code> in my gradle repo, the following is my repo.gradle code:</p>
  
  <pre><code>gradle.rootProject {
      buildscript {
          repositories {
              // here I added the 2 line, google() and jcenter()
              google()
              jcenter()
              maven {
                  name "doclib"
                  url "https://doclib.my.com.net/artifactory/repo"
                  credentials {
                      username project['repo.doclib.username']
                      password project['repo.doclib.password']
                      }
              }         
          }
      }
      repositories.addAll(buildscript.repositories)
  
      subprojects{ project -&gt;
          project.repositories.addAll(gradle.rootProject.repositories)
      }
  }
  </code></pre>
  
  <p>After I try to run the command again, <code>cordova build android --angular</code>.
  However, the error still there, the following is the error I hit:</p>
  
  <pre><code>Checking Java JDK and Android SDK versions
  ANDROID_SDK_ROOT=undefined (recommended setting)
  ANDROID_HOME=/home/meow/Android/Sdk (DEPRECATED)
  Subproject Path: CordovaLib
  Subproject Path: app
  Downloading https://services.gradle.org/distributions/gradle-4.10.3-all.zip
  
  Exception in thread "main" 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
      at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
      at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1964)
      at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:328)
      at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:322)
      at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1614)
      at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:216)
      at sun.security.ssl.Handshaker.processLoop(Handshaker.java:1052)
      at sun.security.ssl.Handshaker.process_record(Handshaker.java:987)
      at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1072)
      at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1385)
      at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1413)
      at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1397)
      at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559)
      at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
      at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1564)
      at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1492)
      at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:263)
      at org.gradle.wrapper.Download.downloadInternal(Download.java:66)
      at org.gradle.wrapper.Download.download(Download.java:51)
      at org.gradle.wrapper.Install$1.call(Install.java:62)
      at org.gradle.wrapper.Install$1.call(Install.java:48)
      at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:69)
      at org.gradle.wrapper.Install.createDist(Install.java:48)
      at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:107)
      at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:61)
  Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
      at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:397)
      at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:302)
      at sun.security.validator.Validator.validate(Validator.java:260)
      at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:324)
      at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:229)
      at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:124)
      at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1596)
      ... 20 more
  Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
      at sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141)
      at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:126)
      at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:280)
      at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:392)
      ... 26 more
  /home/meow/Workspace/cordova/MFPStarterCordova/platforms/android/gradlew: Command failed with exit code 1 Error output:
  Exception in thread "main" 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
      at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
      at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1964)
      at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:328)
      at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:322)
      at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1614)
      at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:216)
      at sun.security.ssl.Handshaker.processLoop(Handshaker.java:1052)
      at sun.security.ssl.Handshaker.process_record(Handshaker.java:987)
      at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1072)
      at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1385)
      at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1413)
      at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1397)
      at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559)
      at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
      at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1564)
      at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1492)
      at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:263)
      at org.gradle.wrapper.Download.downloadInternal(Download.java:66)
      at org.gradle.wrapper.Download.download(Download.java:51)
      at org.gradle.wrapper.Install$1.call(Install.java:62)
      at org.gradle.wrapper.Install$1.call(Install.java:48)
      at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:69)
      at org.gradle.wrapper.Install.createDist(Install.java:48)
      at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:107)
      at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:61)
  Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
      at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:397)
      at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:302)
      at sun.security.validator.Validator.validate(Validator.java:260)
      at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:324)
      at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:229)
      at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:124)
      at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1596)
      ... 20 more
  Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
      at sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141)
      at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:126)
      at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:280)
      at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:392)
      ... 26 more
  </code></pre>
  
  <p>Anyone know which mistake I made? Kindly advise.</p>