Just a quick post for those that are playing with the UrbanCode Deploy REST API. If you are building a Java solution that utilizes the UrbanCode Deploy REST API, you no doubt have run into the SSL certificate issue. The default installation for UrbanCode Deploy utilizes a secure socket layer protocol and therefore you have to deal with SSL and its certificate. Most browsers deal with this and present a warning allowing you to pass at your own risk.
We are all used to this Chrome warning. You would be surprised at how many internal RTC and UCD servers within IBM don’t bother installing a real certificate 🙂
However, when you are writing Java code that is accessing the REST API, the Java JVM is not as forgiving. You have to deal with it. Well, after going to the source of all worldly knowledge, Google, I found an easy solution. I use Rational Software Architect as my Eclipse IDE, but obviously this will work with any Eclipse-based IDE (any JVM-based IDE for that matter). Go and get this file. Create a Java project and add this Java file to it.
In my version, I commented out the section that determines the keystore location (File file = new File…) with a single line that points to my jre that is part of RSA.
File file = new File(“C:/Program Files (x86)/IBM/SDP/jdk/jre/lib/security/cacerts”);
You then simply run the Java program passing the URL (https://<hostname>:8443) of your UrbanCode Deploy server. Apparently the code attempts to connect and fails, but as part of the SSL handshake process it grabs the server certificate and puts it into the keystore for your JRE. Not sure exactly how it works but it worked for me so I didn’t dig deeper.
The next time you attempt to run some Java code that access an UrbanCode Deploy REST API from your IDE, you should not have anymore SSL certificate issues getting in your way. Of course you still have to deal with the certificate “for real” when it comes to production time, but this should get you through the debugging stage.