Zipwise.com Не удалось создать безопасный канал SSL / TLS - PullRequest
0 голосов
/ 27 февраля 2020

У меня проблема с моим приложением. При попытке использовать API ZipWise.com для получения почтовых индексов я получаю сообщение об ошибке «Запрос был прерван: не удалось создать безопасный канал SSL / TLS». Я не внес никаких изменений в программу, и она внезапно перестала позволять мне использовать их API. Я попытался добавить это в начало своего кода перед созданием запроса:

ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

Я отключил TLS 1.0, TLS 1.1, SSL 2.0 и SSL 3.0 на сервере (и перезагрузил). Я могу открыть URL в браузере без проблем. Я проверил в лабораториях SSL, что они используют TLS 1.2.

Когда я запускаю это на своей разработке P C, она выполняется без проблем и возвращает несколько почтовых индексов. Когда я пытаюсь запустить его на сервере, он дает сбой и выдает эту ошибку.

Вот пример кода, который я использовал в приложении Windows форм, которое выдает такую ​​же ошибку:

        private void button1_Click(object sender, EventArgs e)
    {
        ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
        ServicePointManager.Expect100Continue = true;

        string url = "https://zipwise.com/webservices/radius.php?key=**********&zip=90210&radius=50";

        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri(url));
        request.Method = "POST";

        HttpWebResponse response = (HttpWebResponse)request.GetResponse();//exception occurs here

        StreamReader input = null;
        XDocument doc = null;

        if (response.StatusCode.Equals(HttpStatusCode.OK))
        {
            input = new StreamReader(response.GetResponseStream());
            doc = XDocument.Parse(input.ReadToEnd());
        }

        response.Close();
        request.ServicePoint.CloseConnectionGroup(request.ConnectionGroupName);

        if (input != null)
        {
            input.Close();

            var tempZips = (from z in doc.Descendants("result") select z.Descendants("zip").Single().Value).ToList();
            finalZips.AddRange(tempZips);

            foreach(string s in finalZips)
            {
                listBox1.Items.Add(s);
            }
        }
    }

Любая помощь приветствуется!

РЕДАКТИРОВАТЬ: Приложение работает. NET 4.6, Сертификат SSL на сервере все еще действителен.

...