代码之家  ›  专栏  ›  技术社区  ›  draen

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

  •  2
  • draen  · 技术社区  · 6 年前

    我正试图用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 回复  |  直到 6 年前
        1
  •  1
  •   draen    6 年前

    我找到了解决办法。中间CA自动安装在 中级认证机构 但它需要在 受信任的根证书颁发机构 .

    只要把它移到那里就行了。