Около месяца назад наш код для доступа к веб-сервису начал давать сбой и выдает ошибку, связанную с SSL-соединением:
System.Net.WebException: The request was aborted: Could not create SSL/TLS secure channel. at System.Net.HttpWebRequest.GetRequestStream(TransportContext& context) at System.Net.HttpWebRequest.GetRequestStream() at
В средстве просмотра событий регистрируется следующая ошибка.
Код события: 36887 - «Получено следующее критическое предупреждение: 40.»
Это 64-разрядная версия Windows Server 2008. Он настроен на соответствие PCI, поэтому при настройке сервера были внесены изменения в SSL, чтобы он соответствовал, но никаких последних изменений до того, как это перестало работать.
На сервере, если я пытаюсь получить доступ с помощью Internet Explorer к URL-адресу HTTPS веб-службы, он сообщает, что не может отображать страницу, и то же событие регистрируется. Это также происходит на некоторых других HTTPS-сайтах, которые я пробовал.
Если я использую Google Chrome на том же сервере, он работает нормально.
В моем коде C # ASP.NET я пытался игнорировать ошибки SSL, но это не помогло:
System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
Я также читал об обновлении за ноябрь 2014 г., которое могло вызвать проблему, но более позднее исправление, похоже, уже было установлено.
Есть идеи, что еще я могу попробовать?
Я нашел решение ... Я использовал приложение под названием IIS Crypto, который изменяет параметры реестра для протоколов SSL, шифров, хэшей, обменов ключами и порядка шифров SSL, чтобы установить для них оптимальную конфигурацию для соответствия PCI. После перезапуска сервера не только Internet Explorer мог получить доступ к странице HTTPS, но и код, который обращается к веб-службе, снова начал работать.