1

I am building an application in Java which I would like to make rest calls to https services. The application is written in Java Standard Edition.

I am using If This Then That as a test but I want the application to connect to any https site that the user types in. For IFTTT I use the following URL:

https://maker.ifttt.com/trigger/{my_event} /with/key/{my_app_key}

I get the following error:

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

I think this error means that the root certificate used for IFTTT is not in my cacerts truststore. I understand a solution to this problem may be to add it. According to chrome the certificate path terminates at a root certificate names “Go Daddy Root Certificate Authority – G2”.

I guess if I add this to my cacerts using keytool it will work. However I expect users of my application to type in various URL’s. I don’t want to only allow a particular subset of the internet. I also don’t want to disable certificate checking. Chrome, IE and firefox all recognise the IFTTT site without a problem. Why doesn’t the standard cacerts file in Java recognise this? Can I get Java to use a system cacerts file which includes all these sites? (This would have to work on Java on Windows, Max and various Linux flavours.)

Robert3452
  • 1,354
  • 2
  • 17
  • 39

0 Answers0