我有一个Web服务,当我测试时它正常工作但是当我尝试在自己创建的ssl证书的客户端应用程序中使用它时,我收到此错误
根据验证程序,远程证书无效。
描述:执行当前Web请求期间发生了未处理的异常。请查看堆栈跟踪,以获取有关错误及其在代码中的起源位置的更多信息。
System.Security.Authentication.AuthenticationException
我已阅读了如此多的文档并进行了一些研究工作,但还没有什么能解决问题。如果有人帮忙的话,我会感到高兴。
答案 0 :(得分:1)
由于您的SSL证书是自签名的,因此您必须自定义验证证书。即使您已将此证书添加到Trusted Ceritifcate Store,您仍需要执行此操作。
这只是我的头脑,但我认为它应该是这样的:
ServerCertificateValidationCallback += new RemoteCertificateValidationCallback(ValidateRemoteCertificate);
private bool ValidateRemoteCertificate(object sender, X509Certificate cert, X509Chain chain, System.Net.Security.SslPolicyErrors sslPolicyErrors)
{
//Use sslPolicyErrors to check what the error is for the certificate.
//Validate your certificate.
//Check Hash for MiTM attack.
//Decide if it is good, then return true, else return false.
return true;
}