Почему некоторые, но не все сайты Letsencrypt не читаются? - PullRequest
0 голосов
/ 16 февраля 2020

После некоторых обновлений веб-сервера сегодня используемый мной скрипт, загружающий данные с одного из моих сайтов, перестал работать! Сайт использует 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!";
        }
    }

1 Ответ

1 голос
/ 16 февраля 2020

Приведенный выше код был скомпилирован в VS 2015 (довольно старый!) Я попробовал его в VS 2017, и все сайты работают нормально.

TLS 1.3, вероятно, является причиной исключений. Я перееду на VS 2019 сегодня вечером! : -)

Спасибо Дирку и Стефану за решение этой проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...