使用.NET 4.0框架我正在尝试将服务器设置为服务器HTTPS SOAP服务调用。 在客户端服务器上,我正在尝试添加本地SSL证书,以便接收呼叫的服务器可以识别我。
我试图添加的证书不是来自本地机器的商店(问题仍然存在,即使它存在),只是一个(.cer)文件作为本地文件放在我的机器上。
代码工作正常,似乎添加了证书,但我的System.Net.trace.log文件不断为每次调用添加以下错误: “无法在LocalMachine商店或CurrentUser商店中找到证书。”我试图打电话的服务器一直告诉我,我的请求没有附加证书。 我得到的最终WebException是: “请求已中止:无法创建SSL / TLS安全通道。” 我的GetCertificate函数:
private X509Certificate2 GetCertificate()
{
X509Certificate2 cert;
try
{
cert = new X509Certificate2("MyCertificateFoder\\MyCertificate.cer");
}
catch (Exception ex)
{
throw;
}
return cert;
}
服务电话代码:
X509Certificate2 cert = GetCertificate();
ServiceClient.ClientCertificates.Add(cert);
serviceMethodResponse = ServiceClient.ServiceMethod(serviceMethodRequest);
欢迎任何建议。
由于
答案 0 :(得分:1)
这里的主要错误是当使用SSL与客户端身份验证时,应使用.pfx文件(包含客户端私钥,证书,证书链,根权限证书)。
不是.cer文件。
这是错误的原因。