You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET SSLStream设置合法targetHost时如何禁用远程证书验证

.NET SSLStream指定合法targetHost时禁用远程证书验证方案

存在可实现的方案,核心思路是通过SslStream构造参数注入自定义远程证书验证回调,该回调优先级高于系统默认的targetHost关联校验逻辑,只需在回调内直接返回true即可跳过所有证书校验步骤。

实现步骤

  1. 构造SslStream实例时传入userCertificateValidationCallback参数,回调内直接返回true:
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;

// 示例中的networkStream为已建立连接的基础网络流
SslStream sslStream = new SslStream(
    innerStream: networkStream,
    leaveInnerStreamOpen: false,
    // 自定义证书验证回调
    userCertificateValidationCallback: (sender, certificate, chain, sslPolicyErrors) =>
    {
        // 直接返回true,忽略所有证书校验错误(域名不匹配、证书过期、不受信任等)
        return true;
    }
);
  1. 调用AuthenticateAsClient方法时直接传入合法的targetHost即可,无需设置为*:
// 传入实际业务使用的合法域名即可
sslStream.AuthenticateAsClient(targetHost: "your-valid-domain.com");

注意事项

  • 该方案兼容所有.NET版本(.NET Framework 4.0+、.NET Core 1.0+、.NET 5+),回调返回值会覆盖所有系统默认校验逻辑,包括targetHost域名匹配校验。

注意:此方案完全独立于targetHost设为*的跳过逻辑,即使传入标准域名也可实现同等的跳过校验效果。

  • 禁用证书验证存在极高的中间人攻击风险,仅可在测试环境、内网完全可信场景下使用,生产环境严禁启用该逻辑。
  • 如需部分放宽校验规则而非完全禁用,可在回调内增加自定义判断逻辑,例如仅放行指定指纹的证书、仅忽略域名匹配错误等。

内容的提问来源于stack exchange,提问作者subbaraoc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 03:51:03