繁体   English   中英

如何从.net客户端发送多个(包括根CA)证书

[英]How to send multiple (including root CA) certificates from .net client

我们一直在努力解决问题。

我们使用带有客户端证书的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。 因此服务器的防火墙不允许我们拨打电话。

在此处输入图片说明

所以我的问题是,我们如何设法通过.Net在SOAP UI之类的请求中发送CA根?

如果有人可以对这个问题有任何想法,我将不胜感激!

如果第一个客户端(SOAP UI)正在发送CA证书,则它必须是本身由另一个CA签名的中间CA证书。 客户端将没有任何理由发送根CA证书。

就像在服务器上安装中间CA证书一样简单,这样第二个客户端就不必发送它。

它也可以像在本地计算机(或用户)的Windows证书存储区中的客户端上安装中间CA证书一样简单,以便在构建客户端证书链时可以使用。

否则,我可以确定您正在寻找的是如何获取.NET以在客户端证书链中发送中间 CA证书。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM