However the response from the API indicates that it didn't receive any client certificates. Testing from a Chrome browser and PostMan gave a good response. telling me that the cert chain is configured correctly in Trusted Root in Certificate Manager.
We moved onto troubleshooting with Wireshark and looking for evidence of the handshake steps. Wireshark doesnt have any entries after HelloServerDone, which is the step where the client application shares it's certificates, and awaits the client to respond with it's trusted client cert. There are .Net core examples https://stackoverflow.com/questions/400 ... ttpclient reproduced below
Code: Select all
// using System.Net.Http;
// using System.Security.Authentication;
// using System.Security.Cryptography.X509Certificates;
var handler = new HttpClientHandler();
handler.ClientCertificateOptions = ClientCertificateOption.Manual;
handler.SslProtocols = SslProtocols.Tls12;
handler.ClientCertificates.Add(new X509Certificate2("cert.crt"));
var client = new HttpClient(handler);
var result = client.GetAsync("https://apitest.startssl.com").GetAwaiter().GetResult();
My questions are :
1) Has anyone had a similar issue and what was the workaround ? Using the LANSA/Integrator HTTP Service isn't preferred because all development done so far has been using VL
2) is there a way of defaulting the client cert at IIS level if VL has no methods to add an X509 certificate to a two way SSL certificate exchange. See ClientCertificationOption in .Net documentation https://learn.microsoft.com/en-us/dotne ... ew=net-7.0