如何在C#请求中包含两个SSL证书

时间:2017-11-27 14:32:21

标签: c# web-services ssl ssl-certificate tls1.2

我正在尝试使用C#客户端连接到Java Web服务。我没有物理访问该服务,但我的开发人员告诉我,我需要在我的请求中提供客户端证书和中间CA.

我尝试使用服务参考和WebClient,但我只设法发送客户端证书。

protected override WebRequest GetWebRequest(Uri address)
    {
        HttpWebRequest request = (HttpWebRequest)base.GetWebRequest(address);

        request.ClientCertificates.Add(m_TransportCertificate); 
        //m_TransportCertificate holds client certificate with key and rest of the cert chain (intermediate and root)

        return request;
    }

如何在C#中发送两个客户端证书?据我所知,这不是正常行为 - 客户端应该只发送一个证书。

我不能让我的应用程序这样做 - 它总是发送一个证书。 Wireshark screenshot

然而,它适用于SoapUI(第二个是中间CA) Wireshark screenshot

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。中级CA自动安装在中级证书颁发机构中,但它必须位于受信任的根证书颁发机构

刚刚将它移到那里并且有效。