Мне нужно программно определить функции TLS клиента и базового хоста на основе Javascript.
Какой экземпляр веб-сервера (apache, IIS и т. Д.) Позволяет загружать разные конфигурации шифров SSL под разными именами хостов?
В этом варианте использования все клиенты поддерживают SNI. Единственная разница в том, что я хочу сделать некоторые страницы доступными только для чтения под старыми шифрами и с полным доступом при использовании современного браузера.
Я хочу попросить всех перейти на app.example.com, который отправит GET-запрос на "legacy.example.com", а также "secure.example.com". Если безопасное соединение установлено успешно, мы перейдем к этой конечной точке через перенаправление, индуцированное javascript.
Какие технологии веб-серверов позволяют это сделать, и если я могу сделать это под IIS, это предпочтительнее.
Чтобы ответить на часть вашего вопроса IIS :
По умолчанию в Windows есть только один набор шифров и протоколов, поддерживаемых для ВСЕХ операций сервера (и еще один для всех операций клиента). Таким образом, для IIS все веб-сайты на сервере поддерживают одни и те же шифры и протоколы.
Включенные в настоящее время шифры хранятся в реестре. Таким образом, вы можете запросить информацию из реестра.
Вы также можете использовать IIS Crypto ( https://www.nartac.com/Products/IISCrypto ), чтобы увидеть, какие в настоящее время включены шифры и протоколы.