title: javax.net.ssl.SSLHandshakeException when trying to clone GIT on MAC
body: <p>When trying to clone a VSTS project repo to my Mac (via VS Code Terminal) I get the following certificate error</p>
  
  <p><code>git clone https://abc-masked.visualstudio.com/Test/_git/Test.UI</code></p>
  
  <pre><code>Cloning into 'Test.UI'...
  Configuration::loadGitConfiguration
  Program::loadOperationArguments
  Configuration::tryGetEntry
  Configuration::tryGetEntry
  Configuration::tryGetEntry
  Configuration::tryGetEntry
  Configuration::tryGetEntry
  Configuration::tryGetEntry
  Program::EnableTraceLogging
  Program::get
     targetUri = https://abc-masked.visualstudio.com/
  Program::ComponentFactory::createSecureStore
  Getting a persistent token store that must be secure
  Getting a persistent credential store that must be secure
  Program::createAuthentication
     detecting authority type
  BaseVsoAuthentication::getAuthentication
  BaseVsoAuthentication::detectAuthority
     detected visualstudio.com, checking AAD vs MSA
  Fatal error encountered.  Details:
  java.lang.Error: javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
      at com.microsoft.alm.authentication.BaseVsoAuthentication.detectAuthority(BaseVsoAuthentication.java:293)
      at com.microsoft.alm.authentication.BaseVsoAuthentication.getAuthentication(BaseVsoAuthentication.java:324)
      at com.microsoft.alm.gitcredentialmanager.Program.createAuthentication(Program.java:915)
      at com.microsoft.alm.gitcredentialmanager.Program$ComponentFactory.createAuthentication(Program.java:1174)
      at com.microsoft.alm.gitcredentialmanager.Program.initialize(Program.java:883)
      at com.microsoft.alm.gitcredentialmanager.Program.get(Program.java:292)
      at com.microsoft.alm.gitcredentialmanager.Program.access$200(Program.java:63)
      at com.microsoft.alm.gitcredentialmanager.Program$3.call(Program.java:284)
      at com.microsoft.alm.gitcredentialmanager.Program$3.call(Program.java:281)
      at com.microsoft.alm.gitcredentialmanager.Program.innerMain(Program.java:195)
      at com.microsoft.alm.gitcredentialmanager.Program.main(Program.java:123)
  Caused by: javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
      at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:128)
      at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:321)
      at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:264)
      at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:259)
      at java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.checkServerCerts(CertificateMessage.java:1329)
      at java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.onConsumeCertificate(CertificateMessage.java:1204)
      at java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.consume(CertificateMessage.java:1151)
      at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:392)
      at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:444)
      at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:421)
      at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:178)
      at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:164)
      at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1152)
      at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1063)
      at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:402)
      at java.base/sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:567)
      at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
      at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:163)
      at com.microsoft.alm.helpers.HttpClient.head(HttpClient.java:97)
      at com.microsoft.alm.authentication.BaseVsoAuthentication.detectAuthority(BaseVsoAuthentication.java:277)
      ... 10 more
  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 java.base/sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:385)
      at java.base/sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:290)
      at java.base/sun.security.validator.Validator.validate(Validator.java:264)
      at java.base/sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:321)
      at java.base/sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:221)
      at java.base/sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:129)
      at java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.checkServerCerts(CertificateMessage.java:1313)
      ... 25 more
  Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
      at java.base/sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141)
      at java.base/sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:126)
      at java.base/java.security.cert.CertPathBuilder.build(CertPathBuilder.java:297)
      at java.base/sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:380)
      ... 31 more
  fatal: credential helper '!java -Ddebug=true -Djava.net.useSystemProxies=true -jar /usr/local/Cellar/git-credential-manager/2.0.4/libexec/git-credential-manager-2.0.4.jar' told us to quit
  </code></pre>
  
  <p>I have tried the following:</p>
  
  <ol>
  <li>Updated the Java version</li>
  <li><p>I downloaded the certificate from my VSTS domain (abc-masked.visualstudio.com) and added it to the Java keystore but that did not help.</p>
  
  <p>Also, I have git-credential-manager installed.</p></li>
  </ol>
  
  <p>I am new to git, Can you please point me in the right direction?</p>
  
  <p>Edit: This URL <code>https://abc-masked.visualstudio.com/</code> when I open in the browser immediately redirects to <code>https://dev.azure.com/abc-masked</code>.So I added both <code>*.dev.azure.com</code> and <code>*.visualstudio.com</code> certs to both Mac keychain and Java Keystore</p>