gpt4 book ai didi

C# 通过 SSL/TLS 获取 xml 站点 - https ://

转载 作者:太空宇宙 更新时间:2023-11-03 20:27:07 25 4
gpt4 key购买 nike

我需要能够在控制台程序中从 https 网站读取 xml/rss。

直到现在我的程序都支持普通的 http,我一直在四处寻找,但我似乎找不到一种简单的方法来实现对 https 的支持。该站点是否具有有效证书并不重要,但我很乐意获得有关如何检查这些证书的提示。

我可能对此不太了解,所以任何提示都适用!

我目前为 http 做的是:

XmlTextReader rssReader;
XmlDocument rssDoc;
rssReader = new XmlTextReader(url);
rssDoc = new XmlDocument();
rssDoc.Load(rssReader);

在没有受信任证书的站点上尝试此操作时,我收到一条错误消息:“底层连接已关闭:无法为 SSL/TLS 安全通道建立信任关系。”

string url = "https://somesite.com";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream resStream = response.GetResponseStream();

我的程序需要支持受信任和不受信任的 https 站点。

程序在服务器上运行,因此必须在代码中处理不受信任的 https 站点。

最佳答案

对于证书问题,请尝试以下...

ServicePointManager.ServerCertificateValidationCallback += new System.Net.Security.RemoteCertificateValidationCallback((s, ce, ch, ssl) => true);

...在开始的某个地方 - 或者在执行请求之前。

这基本上是无条件地验证任何证书,有点简化。

编辑:这是“盲目”信任(并且对您的应用程序具有全局特性)- 正确的实现将处理参数 - 或者需要实现 ICertificatePolicy专门处理不同的主机/证书。

编辑(证书):关于证书和 SSL 的实际工作方式 - 以及与上述相关的内容(基于评论/讨论)......

http://www.verisign.com/ssl/ssl-information-center/how-ssl-security-works/index.html
How does SSL really work?
https://superuser.com/questions/84572/public-key-encryption

关于C# 通过 SSL/TLS 获取 xml 站点 - https ://,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10036161/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com