首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从.net客户端发送多个证书(包括根CA)

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

Stack Overflow用户
提问于 2016-07-23 12:16:21
回答 1查看 1.5K关注 0票数 4

一段时间以来,我们一直试图解决一个问题。

我们使用带有客户端证书的web服务。

服务所有者给了我们一个.p12文件,它包含客户端证书和CA以及私钥。

我们可以从证书本身看到证书路径。

问题是,当我们试图通过SOAP调用web服务时,它可以工作。在SOAPUI中,我们选择.p12文件作为密钥存储库并设置密码。它起作用了。

​

​

当我们试图通过我们的.net客户端应用程序调用web服务时,它不起作用。

-我们就是这样称呼网络服务的

代码语言:javascript
复制
        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一样在.Net中发送CA根呢?

如果有人对这个问题有任何意见,我将不胜感激!

EN

回答 1

Stack Overflow用户

发布于 2016-07-23 18:40:56

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

它可以简单到在服务器上安装中间CA证书,这样第二个客户端就不需要发送它了。

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

否则,我很确定您要寻找的是如何让.NET在客户端证书链中发送中间CA证书。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38541693

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档