我想調用ssl web服務。我有安裝在可信存儲區中的服務器證書。 我正在使用SOAP UI工具和soap sonar來調用我使用htts調用服務的ssl web服務。2路ssl web服務測試
看起來像證書沒有通過請求。
我已經創建了一個C#應用程序來傳遞帶有證書的請求。
但仍然是一樣的錯誤。
你能推薦任何其他工具來測試webservice嗎?或示例代碼?
private void button4_Click(object sender, EventArgs e)
{
try
{
var clientHandler = new WebRequestHandler();
string address = @"https://xxx.xxx.xxx.xxx:58444/IVR/";
var requestXML = "\\request.xml";
var serialized = File.ReadAllText(Environment.CurrentDirectory + requestXML);
var cert = GetCert();
CertificateWebClient myWebClient = new CertificateWebClient(cert);
string fileName = Environment.CurrentDirectory + requestXML;
myWebClient.Headers.Add("Content-Type", "application/xml;charset=utf-8");
byte[] responseArray = myWebClient.UploadFile(address, fileName);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
public class CertificateWebClient : WebClient
{
private readonly X509Certificate2 certificate;
public CertificateWebClient(X509Certificate2 cert)
{
certificate = cert;
}
protected override WebRequest GetWebRequest(Uri address)
{
HttpWebRequest request = (HttpWebRequest)base.GetWebRequest(address);
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
request.ServicePoint.Expect100Continue = true;
request.ServerCertificateValidationCallback =
delegate(Object obj,
X509Certificate X509certificate,
X509Chain chain,
System.Net.Security.SslPolicyErrors errors)
{
if (errors == System.Net.Security.SslPolicyErrors.RemoteCertificateNameMismatch)
{
return true;
}
else
{
return false;
}
};
request.ClientCertificates.Add(certificate);
return request;
}
}
例外: -
請求已中止:無法創建SSL/TLS安全通道。
如果您收到異常請發帖 –
我更新了異常問題。 – Prashant
這可能與您的代碼無關。 A:服務器的證書不被您的應用程序信任;或B:您的客戶的證書不被服務器接受。檢查與提琴手,你真的通過證書請求 –