I'm trying to use the SSLClientExisEngineConfig to make a call on an SSL server (I need to make a call where the client uses a certificate to authenticate to the server, vice versa). When instantiating the same object I defining which truststors and keystores to call, it seems that the axis continues using the default (Java acerts). My call:
axisConfig = new SSLClientAxisEngineConfig(abconfigfile);
axisConfig.setProtocol("TLS");
axisConfig.setKeyStoreType("JKS");
axisConfig.setKeyStore("KEYSTORE.jks);
axisConfig.setKeyStorePassword("changeit");
axisConfig.setTrustStoreType("JKS");
axisConfig.setTrustStore("TRUSTSTORE.jks");
axisConfig.setTrustStorePassword("changeit);
And when you make the HTTPS call, Axis logs in:
keyStore is: keyStore type is: jks keyStore provider is: init keystore init keymanager of type SunX509 trustStore is: C: \ Program Files \ Java \ jdk1.6.0_45 \ jre \ lib \ security \ cacerts trustStore type is: jks trustStore provider is:
And it has as a return:
AxisFault faultCode: { link } Server.userException faultSubcode: faultString: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure faultActor: faultNode: faultDetail: { link } stackTrace: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
I wonder what might be happening to not loading KEYSTORE.jks and TRUSTSTORE.jks NOTE: I have been able to use this certificate through spring.