ASP. NET 4.5.2 по умолчанию для вызовов внешнего API TLS1.0 - PullRequest
0 голосов
/ 26 мая 2020

У меня возникает странная проблема, когда у нас есть несоответствие между поведением нашего промежуточного и производственного сервера при вызове внешней сторонней веб-службы.

У нас работает 3 ASP. NET веб-приложений рамки 4.5.2. Одно из этих приложений может успешно вызывать внешний API, а два других не могут отправить тот же вызов API.

Те же 3 веб-приложения, запущенные на нашем промежуточном сервере, работают правильно, наш промежуточный сервер отражает нашу производственную среду .

Используя Fiddler, я вижу, что успешный вызов выполняется с использованием TLS1.2, а два других веб-приложения, которые не работают, выполняют вызов с использованием TLS1.0

Все 3 веб-приложения запускаются на том же сервере, одна и та же. NET версия фреймворка, та же конфигурация пула приложений (отдельные пулы приложений), одна и та же библиотека классов повторно используется во всех 3 приложениях для выполнения вызовов API, код точно такой же.

Я бы предпочел не заставлять библиотеку классов API исключать или принудительно использовать определенные протоколы с помощью ServicePointManager, поскольку мы подключаемся ко многим другим системам и API, и я не хочу рисковать нарушением интеграции в других областях.

Еще одно интересное наблюдение, если я запускаю Fiddler и устанавливаю протоколы HTTPS в параметрах окно, чтобы явно разрешить tls1.1 / 1.2 и запустить тот же тест в неудавшемся веб-приложении, оно работает. Если я удалю этот параметр или просто закрою Fiddler, он снова выйдет из строя, поэтому кажется, что Fiddler может перехватить и заставить протокол, используемый для вызова API.

Может ли кто-нибудь придумать причину, по которой только 1 из 3 веб-приложения могут вызывать эту службу с помощью TLS1.2, в то время как другие 2 не работают?

...