对于.NET 4.6.2中的SOAP,“无法为具有权限的SSL / TLS安全通道建立信任关系”

问题描述 投票:0回答:2

我试图从.NET 4.6.2进行内部应用程序的SOAP WCF调用,我得到上面的错误。我找到了一个我认为可行的解决方案,但经过进一步研究,它只适用于.NET 4.5:

System.Net.ServicePointManager.ServerCertificateValidationCallback +=
            (se, cert, chain, sslerror) => true;

是否有适用于.NET 4.6的可比解决方案?我并不担心安全问题,这仅适用于内部测试。

c# .net wcf soap .net-4.6
2个回答
0
投票

ServerCertificateValidationCallback需要至少.Net 4.5 - 它应该在4.6.2中正常工作。如果它不起作用,请在实例化客户端之前设置它。

作为旁注,你真的不应该全局禁用验证,即使它是“仅用于测试”,因为它是一个相当大的安全问题,并且在测试解决方案之前突然出现的那些着名的最后一句话,你太忙了,不记得采取出来!

你打电话到底是怎么回事?所有机制都有更集中的方法来禁用对这一个调用的检查。

或者只需在端点上放置一个自签名证书并在您的开发机器上信任它,然后您就不会打开任何安全漏洞。


0
投票

对于服务器证书的验证,您可以使用以下代码作为替代,它也适用于Asp.net Core项目。

//client is a proxy class object.
           client.ClientCredentials.ServiceCertificate.SslCertificateAuthentication =
    new X509ServiceCertificateAuthentication()
    {
        CertificateValidationMode = X509CertificateValidationMode.None,
        RevocationMode = X509RevocationMode.NoCheck
    };

如果问题仍然存在,请随时告诉我。

© www.soinside.com 2019 - 2024. All rights reserved.