忽略 SSL 证书验证
在 HTTPS 请求期间绕过 SSL 证书验证,可以使用 ServicePointManager.ServerCertificateValidationCallback
代理。此代理允许自定义证书验证逻辑,使我们能够忽略验证错误。
代理细节
每次与不受信任或已过期证书建立 HTTPS 连接时,都会调用 ServicePointManager.ServerCertificateValidationCallback
代理。它接受四个参数:
obj
:尝试验证证书的 ServicePoint
实例。certificate
:正在验证的 X509 证书。chain
:与证书关联的 X509 证书链。errors
:与验证尝试关联的 SSL 策略错误。实现
要忽略证书验证,请注册一个始终返回 true
的代理,以指示接受证书。这可以在 GetRequest()
方法中完成,如下面的代码片段所示:
<code class="language-csharp">ServicePointManager.ServerCertificateValidationCallback = delegate( Object obj, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors) { return (true); };</code>
执行和放置
当 WebRequest
尝试建立 HTTPS 连接并遇到信任或过期错误时,会调用此代理方法。应在执行请求之前注册它。在提供的代码中,它放置在 Stream stream = request.GetRequestStream()
行之前。
以上是如何在C#中忽略SSL证书验证?的详细内容。更多信息请关注PHP中文网其他相关文章!