C# 为什么有些但不是所有的Letsencrypt网站不能被阅读?
今天在一些Web服务器更新之后,我用来从我的一个网站加载数据的脚本停止工作了!该网站使用Letsencrypt进行SSL 我试图阅读所有使用Letsencrypt的网站(见下面的代码),包括Letsencrypt.org本身。有些工作,有些没有。我想知道发生了什么事。有人吗C# 为什么有些但不是所有的Letsencrypt网站不能被阅读?,c#,webrequest,lets-encrypt,C#,Webrequest,Lets Encrypt,今天在一些Web服务器更新之后,我用来从我的一个网站加载数据的脚本停止工作了!该网站使用Letsencrypt进行SSL 我试图阅读所有使用Letsencrypt的网站(见下面的代码),包括Letsencrypt.org本身。有些工作,有些没有。我想知道发生了什么事。有人吗 public Form1() { InitializeComponent(); //string site = "https://www.rtl.nl/"; //
public Form1()
{
InitializeComponent();
//string site = "https://www.rtl.nl/"; // <-- Not a LetsEncrypt SSL certificate, runs fine
//string site = "https://weblog.west-wind.com/"; // <-- LetsEncrypt SSL certificate, runs fine.
//string site = "https://www.c-sharpcorner.com/"; // <-- LetsEncrypt SSL certificate, runs fine
//string site = "https://letsencrypt.org/"; // <-- LetsEncrypt SSL certificate, results in exception!
//string site = "https://www.shopify.com/"; // <-- LetsEncrypt SSL certificate, results in exception!
//string site = "https://keenetic.com/en"; // <-- LetsEncrypt SSL certificate, runs fine
string site = "https://unraid.net/"; // <-- LetsEncrypt SSL certificate, results in exception!
HttpWebRequest myWeb = (HttpWebRequest)WebRequest.Create(site);
string myPage = "";
try
{
ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(AcceptAllCertifications);
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
ServicePointManager.Expect100Continue = true;
ServicePointManager.CheckCertificateRevocationList = false;
WebResponse myResponse = myWeb.GetResponse();
Stream myStream = myResponse.GetResponseStream();
StreamReader myReader = new StreamReader(myStream);
myPage = myReader.ReadToEnd().ToString();
textBox1.Text = "Runs fine!";
}
catch (Exception ex)
{
textBox1.Text = "SSL/TLS Exception!";
}
}
public Form1()
{
初始化组件();
//字符串站点=”https://www.rtl.nl/“;//上面的代码是在VS 2015中编译的(非常旧!)
我在VS2017中试用过,所有网站都运行良好
TLS 1.3可能是导致异常的原因。
今晚我将搬到VS2019!:-)
感谢Dirk和Stefan解决此问题。错误消息可能会有帮助…看看一些网站,那些有效的网站似乎使用TLS 1.2,那些不使用TLS 1.3。可能是一个旧的.net版本不支持TLS 1.3?或者没有明确地将其设置为TSL 1.2?错误消息是荷兰语,这就是为什么我没有发布它,但谷歌为我翻译了它:“请求被中止:无法创建SSL/TLS安全通道。”它可能是TSL 1.3!Dot NET 4.7.2。这是我可以用于当前VS的最高版本。我将使用VS 2019编译,并让您知道结果。THANX!