C# 为什么有些但不是所有的Letsencrypt网站不能被阅读?

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/"; //

今天在一些Web服务器更新之后,我用来从我的一个网站加载数据的脚本停止工作了!该网站使用Letsencrypt进行SSL

我试图阅读所有使用Letsencrypt的网站(见下面的代码),包括Letsencrypt.org本身。有些工作,有些没有。我想知道发生了什么事。有人吗

        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!