Хорошо, это была постоянная проблема в течение некоторого времени. Я экспериментировал для пару месяцев и пока что единственный способ заставить мои приложения взаимодействовать с Windows Server 2008 R2 — включить "Использовать FIPS-совместимые алгоритмы для шифрования, хеширования и подписи" в групповой политике как клиентской, так и серверной машины. Как только это включено (включен TLS 1.2 и отключен TLS 1.0 в реестре как клиента, так и сервера), он работает.
Но моя дилемма заключается в том, что мне не нужно соответствие FIPS и на основе рекомендацию Microsoft и тот факт, что мне нужно обновить и изменить много кода, чтобы сделать все мои приложения соответствуют FIPS (не говоря уже о неопределенности в отношении того, будут ли все используемые сторонние приложения соответствовать требованиям клиентов), я надеюсь на лучшее решение.
Для справки, приложения, которые я пытаюсь заставить общаться, — это MS Web Deploy 3.6, .NET Remoting через HTTPS/IIS и развертывание ClickOnce.
Меня осенило, что когда я включаю TLS 1.2 на сервере, без включения режима FIPS, браузеры могут взаимодействовать с ним. Итак, очевидно, есть какой-то способ выполнить работу без этой настройки, я просто не нашел его.
Я просмотрел этот ответ и этот ответ, но это похоже на низкоуровневый параметр, который нельзя установить в файле конфигурации, поэтому он не будет работать по крайней мере в 2 из 3 моих случаев (он может работать с .NET удаленно, я еще не пробовал). Но отсутствие примеров ужасает - может быть, это и есть ответ, но я не могу понять, как его использовать.
Приемлемым решением было бы включить соответствие FIPS только для определенных пользователей, поэтому я могу настроить каждое приложение отдельно, но поскольку все, что я могу найти, это настройки для всей машины, я в растерянности.
Еще одно потенциальное решение, которое я придумал, — использовать VPN для подключения к серверу, чтобы моим приложениям не требовался зашифрованный протокол для связи. Однако, поскольку я использую Windows Server 2008 R2 Web Edition (которая не поддерживает VPN), я вынужден использовать стороннее решение (которое, надеюсь, будет поддерживать TLS 1.2) или перестраивать свой сервер на новой ОС.
У меня конкретный вопрос: как я могу заставить скомпилированные приложения .NET, такие как MS Web Deploy 3.6, обмениваться данными через TLS 1.2 без обеспечения соответствия FIPS, так же, как это делают браузеры ?