我们一直在努力解决一个问题。
我们使用客户端证书消耗Web服务。
服务提供商给了我们一个.p12文件,其中包含客户端证书、CA和私钥。
我们可以从证书本身看到认证路径。
问题是,当我们尝试通过SOAP UI调用Web服务时,它可以工作。在SOAPUI中,我们选择.p12文件作为密钥库并设置密码。它可以工作。 当我们尝试通过我们的.NET客户端应用程序调用Web服务时,它无法工作。
--这是我们调用Web服务的方式
当我们使用WireShark监测包时,发现SOAPUI在请求中发送了两个证书,即客户端证书和证书颁发机构。 但是 .Net 客户端只发送客户端证书而不发送 CA。因此服务器的防火墙不允许我们的调用。 我的问题是,为什么我们能够像SOAP UI和.Net一样发送CA根证书?如果有人能够提供任何关于这个问题的想法,我将不胜感激!
我们使用客户端证书消耗Web服务。
服务提供商给了我们一个.p12文件,其中包含客户端证书、CA和私钥。
我们可以从证书本身看到认证路径。
问题是,当我们尝试通过SOAP UI调用Web服务时,它可以工作。在SOAPUI中,我们选择.p12文件作为密钥库并设置密码。它可以工作。 当我们尝试通过我们的.NET客户端应用程序调用Web服务时,它无法工作。
--这是我们调用Web服务的方式
channelFactory = new ChannelFactory<AcquisitionAutorisationService>(binding, serviceAddress);
channelFactory.Credentials.ClientCertificate.Certificate = new X509Certificate2();
channelFactory.Credentials.ClientCertificate.Certificate.Import(@"C:\cert\abc.p12", "password", X509KeyStorageFlags.DefaultKeySet);
当我们使用WireShark监测包时,发现SOAPUI在请求中发送了两个证书,即客户端证书和证书颁发机构。 但是 .Net 客户端只发送客户端证书而不发送 CA。因此服务器的防火墙不允许我们的调用。 我的问题是,为什么我们能够像SOAP UI和.Net一样发送CA根证书?如果有人能够提供任何关于这个问题的想法,我将不胜感激!