My setup is a little different: we use smartcard authentication, so the certificate is being passed on from the browser towards websphere. I think you would want to verify if the certificate you expect can be found in each step, with the
trustedSensitiveHeaderOrigin property set anyway. You should be able to find the $WSCC entry containing the certificate you expect in the webserver logs, the plugin logs (I expect you use the plugin) and the websphere logs with proper tracing put on.
------------------------------
Jos Koeken
------------------------------
Original Message:
Sent: Wed April 15, 2020 05:01 PM
From: Eric Covener
Subject: WAS 9 - Mutual Authentication issue
Hi Ravi, did you check the trustedSensitiveHeaderOrigin item i shared earlier in the thread with Jos?
On 9.0.0.11 it is necessary to whitelist your IHS/Plugin tier to pass this information.
I should also ask -- what kind of proxy is in front of WebSphere? Websphere uses proprietary headers to communicate this information from a reverse proxy (like IHS and the WAS Plugin) back to the appserver.
------------------------------
Eric Covener
Original Message:
Sent: Wed April 15, 2020 01:14 PM
From: Ravi Yeduvaka
Subject: WAS 9 - Mutual Authentication issue
Hi Eric and Jos.
We are yet to find a solution for this.
I describe the current set up and what we are trying below. Any help is welcome.
Https request is sent from SOAP UI 5.5. It has a PKCS12 keystore with a single certificate in it.
IHS is 9.0.0.0
WAS is Standalone WebSphere 9.0.0.11
The IHS's keystore (kdb) has the client's certificate added in it.
The WAS's trustore also has the client certificate added as a signer. Enabled tracing both at the IHS and WAS side.
The IHS log is showing the certificate details and allowing it through. Following 2 lines from IHS log. Masked the cert details.
Peer certificate: DN [CN=xxx,OU=xxx,O=xxx,L=xxx,ST=xx,C=xx], SN [00:9e:45:1e:a1:4d:0b:32:f8], Issuer [CN=xxx,OU=xxx,O=xxx,L=xxx,ST=xx,C=xx]
mod_authz_core.c(834): AH01628: authorization result: granted (no directives)
However, the WAS log is not showing the certificate. The Java code that is getting executed in WAS, tries to capture the certificate details from the Servlet Request as mentioned below :x509Cert = (X509Certificate[])httpSR.getAttribute( "javax.servlet.request.X509Certificate");if(x509Cert[0] == null)
{
logger.error("Certifcate is null etc.");
-----------
}
We are seeing the Error line "Certificate is null ..."
- Tried enabling client authentication as required under Quality of Protection in SSL Configurations in WAS but to no avail.
- Also Observed that the client certificate has the signature algorithm as Sha1WithRSA. Not sure if this is an issue, i.e. if it is mandatory to use Signature algorithm as SHA256WithRSA.
Thanks.
------------------------------
Ravi Yeduvaka
Original Message:
Sent: Thu April 09, 2020 11:35 PM
From: Ravi Yeduvaka
Subject: WAS 9 - Mutual Authentication issue
Thank you Eirc and Jos for the information.
We tried the trustedSensitiveHeaderOrigin option but it did not resolve.
Will share the details shortly
------------------------------
Ravi Yeduvaka
Original Message:
Sent: Wed April 08, 2020 08:41 PM
From: Ravi Yeduvaka
Subject: WAS 9 - Mutual Authentication issue
Hi All,
Need help to troubleshoot issue with SSL cert authentication.
Application used a mutual authentication on Websphere to trust the client and Client sends a certificate as part of the request invoking a JAX-WS webservice. After the mutual authentication , the request is received by server piece application layer which needs to have access to the client certificate which is passed from client. The Jax-WS service endpoint code is looking for a client certificate object HttpServletRequest attribute "javax.servlet.request.X509Certificate" and extract it for application purposes.
The set-up is working with WAS 8.5 ND without any issue in production also and when trying to run the same application in WAS 9 stand alone environment where application is receiving a null certificate object in HttpServletRequest attribute "javax.servlet.request.X509Certificate".
We are not sure if the certificate is getting dropped in the middle by WAS or some WAS setting that is missing making the certificate object as null to application code.
Let me know if any additional information is required
Regards
------------------------------
Ravi Yeduvaka
------------------------------