使用 WebRequest 访问 HTTPS 加密站点
问题:
在检索内容的程序中从用户提供的 URL 尝试访问 HTTPS 加密的内容失败,导致
解决方案:
问题是由 WebRequest 的默认行为引起的,它会验证 SSL 证书并拒绝与具有无效证书的站点的连接。要允许您的代码访问 HTTPS 加密的内容(无论证书有效性如何),您可以在发出 Web 请求之前使用以下代码禁用证书验证:
ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(AcceptAllCertifications);
AcceptAllCertifications 的定义:
AcceptAllCertifications 方法定义如下:
public bool AcceptAllCertifications(object sender, System.Security.Cryptography.X509Certificates.X509Certificate certification, System.Security.Cryptography.X509Certificates.X509Chain chain, System.Net.Security.SslPolicyErrors sslPolicyErrors) { return true; }
通过设置此回调,您可以指示 WebRequest 接受所有证书,从而有效地禁用证书验证。这允许您的程序访问 HTTPS 加密的内容,即使认证无效。
以上是如何使用WebRequest访问证书无效的HTTPS站点?的详细内容。更多信息请关注PHP中文网其他相关文章!