我正在尝试从我的SharePoint 2007 WebPart向另一个Web服务发送HttpRequest。该服务需要X509客户端证书进行身份验证。
我写了一个简单的控制台应用程序,在发送请求和使用我的证书进行身份验证时没有问题:
byte[] certBytes = getBytes();
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("<server_url>");
X509Certificate2 cert = new X509Certificate2(certBytes, "<password>", X509KeyStorageFlags.MachineKeySet);
request.ClientCertificates.Add(cert);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
但是,只要从我的SharePoint Webpart运行相同的代码,它就会失败,因为它“无法创建安全的SSL / TSL连接”。
备注:如果我不使用X509KeyStorageFlags.MachineKeySet标志,我会在SharePoint上获得“拒绝访问”。根据{{3}},国旗应该解决这个问题。
(基于Apache的)Web服务记录以下错误:
[error] Re-negotiation handshake failed: Not accepted by client!?
知道为什么相同的代码适用于我的控制台应用程序,但不适用于SharePoint?