我不是 100% 这对你有用,但是对于我们通过我们的 web 服务与 https 进行通信的单元测试(在开发机器上没有 CA 颁发的证书),我们这样做:
在客户端,我们称之为静态方法:(我们正在使用带有 WSE3 的 Web 服务,不确定这是否依赖于此)
private static void DisableCertificateChainCheckingForTestCertificateCompatibility()
{
ServicePointManager.ServerCertificateValidationCallback =
new RemoteCertificateValidationCallback(
ValidateServerCertificate);
}
internal static bool ValidateServerCertificate(
object sender,
X509Certificate certificate,
X509Chain chain,
SslPolicyErrors sslPolicyErrors)
{
if (sslPolicyErrors == SslPolicyErrors.None)
{
return true;
}
//Allow untrusted machines
if (sslPolicyErrors == SslPolicyErrors.RemoteCertificateChainErrors)
{
return true;
}
// Do not allow this client to communicate with unauthenticated servers.
return false;
}
仔细检查 MSDN,我发现我曾经直接从这里获取此代码:http:
//msdn.microsoft.com/en-us/library/system.net.security.remotecertificatevalidationcallback.aspx
神速!