首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SSL错误RemoteCertificateNameMismatch

SSL错误RemoteCertificateNameMismatch
EN

Stack Overflow用户
提问于 2009-02-20 11:54:16
回答 2查看 12.5K关注 0票数 2

我使用WCF让客户端访问服务。我正在尝试使用TLS (https)访问终结点。我有私钥和公钥的证书。

如果我让服务的端点具有与证书名相同的主机名(“颁发给”),那么我就能够从客户端访问该服务。

如果“颁发给”和端点域名的名称不同,我会收到错误消息“无法使用授权为SSL/TLS安全通道建立信任关系”。我已经将证书添加到“受信任的根”、“个人”和“受信任的人”。在我的服务中,我使用了"PeerOrChainTrust“。

如果有人对此有任何想法,请告诉我。

谢谢,Jan

EN

回答 2

Stack Overflow用户

发布于 2009-02-20 13:03:48

在这种情况下,您需要在客户端为服务器定义信任策略。

在调用服务之前调用一次SetCertPolicy。

代码语言:javascript
运行
复制
using System.Net;
using System.Security.Cryptography.X509Certificates;
        public static void SetCertPolicy()
        {
            ServicePointManager.ServerCertificateValidationCallback += RemoteCertValidate;
        }

        private static bool RemoteCertValidate( object sender, X509Certificate cert, X509Chain chain,
            SslPolicyErrors error )
        {
            // trust any cert!!!
            return true;
        }
票数 1
EN

Stack Overflow用户

发布于 2009-02-20 12:00:52

我不认为您可以覆盖证书名称是否与服务器名称匹配的检查。

一些代理允许您在警告后手动覆盖,但除非WCF具有禁用证书验证的设置,否则会带来所有危险。SSL设计的首要目的是让客户端能够验证它正在与哪个服务器通信,否则您将面临各种漏洞(包括中间人和假服务器)。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/569320

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档