I have a web application that call a SOAP Web service secured via SSL .(https://zzzzzzzzzzzz/xxxxx
).
The server send two certificates (Root and Leaf) s
I test a million websphere configuration .
The only procedure that work is the procedure described in this link :
http://blog.xebia.com/2012/10/01/mutual-ssl-authentication-using-websphere-application-server-and-cxf/
By defining the cxf intercpter :
<cxf:bus>
<cxf:outInterceptors>
<bean class="---------------------.WebsphereSslOutInterceptor" />
</cxf:outInterceptors>
</cxf:bus>
For more details , please see :
https://github.com/vlussenburg/websphere-cxf-extensions#websphere-cxf-extensions
Thanks a lot for your helps guys .
Thanks for all the above response. Able to resolve the issue java.security.cert.CertPathValidatorException: Certificate chaining error with following configuration.
For more details, please see this link,
java - path to trustStore - set property doesn't work?
Configured the properties as below in the WebSphere
Select Servers > Application Servers > server_name > Process Definition > Java Virtual Machine > Custom Properties > New.
a) javax.net.ssl.trustStore = jre_install_dir\lib\security\cacerts
Example: C:\Program Files\WebSphere\AppServer\java\jre\lib\security\cacerts
b) javax.net.ssl.trustStorePassword = changeit (default)
c) javax.net.ssl.trustStoreType = jks
For more details, please see this link,
http://publib.boulder.ibm.com/infocenter/tivihelp/v2r1/index.jsp?topic=%2Fcom.ibm.isim.doc_6.0%2Finstalling%2Ftsk%2Ftsk_ic_ins_first_security_truststore.htm
After the configuration was able to see in the logs that certificates being added to the trust store.
Thanks, Uday Nilajkar
Here are the steps to import a certificate to the JVM for a HTTPS WS call:
A) Obtain the Certificate to be Imported
B) Import the certificate
The problem here is that the certificate path builder (A part of the Java Cert path API) cannot build the certificate chain during the SSL handshake. During the handshake the SSL peer host send its certificate (identity) to the client, for the client to trust that particular certificate a chain of trust must be built on the client side, that what is happening when you get the fault. The problem here is that the chain of trust cannot be created since you are missing either the signer certificate and/or the root certificate in your truststore (trust anchor).
Note that the PKIX trustmanager performs a "scope of trust" validation which means that you do not need a complete certificate chain on the client side to fulfill the trust relationship with the SSL peer, you will only need the signer/intermediate certificates in your truststore. In fact, if you should put the leaf certificate in the truststore, that should also make things work, since that states that you have explicit trust of that particular certificate and a certificate chain validation is not needed.
Maybe you should look at the following technote.
If you are at a certain fix pack level you can set the value com.ibm.websphere.ssl.retrieveLeafCert to true and get the leaf certificate when Retrieving from Port.
You should add all certificate chain in your configuration. Usually certificate has at least root certificate of Authorization Center or chain similar certificates.
WAS requires signed certificate by default.