I have a "Hello World" web service created with axis2. I would like to write a client api which could use this service over https with a self-signed certificate. I have a self-signed certificate myCertificate.cer and a keystore containing it.
Here is my client API :
public class MyApi{ public Object callMyService(){ Axis2TestStub stub = new Axis2TestStub( "https://localhost:8443/axis2/services/Axis2Test"); System.setProperty("javax.net.ssl.trustStore", "src/main/resources/myKeystore.jks") System.setProperty("javax.net.ssl.trustStorePassword", "changeit"); Hello request = new Hello(); request.setMot("World"); HelloResponse response = stub.hello(request); Object mot = response.get_return(); return mot; It works but I would like to use myCertificate.cer and not a keystore containing it. Does someone know how to do that? I tried to override https protocol with no success :
HttpSecureProtocol myHttpsProtocol = new HttpSecureProtocol(); myHttpsProtocol .setCheckHostname(false); myHttpsProtocol .addTrustMaterial(new TrustMaterial("myCertificate.cer")); Protocol customHttps = new Protocol("https", (ProtocolSocketFactory) myHttpsProtocol , 8443); Protocol.registerProtocol("https", customHttps);