Назад | Перейти на главную страницу

Можно ли установить HTTP-заголовок версии SSL / TLS с Apache, который может использовать серверное приложение?

На виртуальной машине есть одна служба с выделенным IP-адресом, которая должна быть доступна через SSLv3 (WinXP с клиентами IE6). Я переместил эту службу несколько лет назад на эту виртуальную машину, чтобы иметь возможность отключить SSLv3 для всех других служб.

Я хотел бы уведомить клиентов SSLv3 для этой службы, что для этой службы потребуется TLS 1.1 или более поздней версии "когда-нибудь". Это уведомление нельзя показывать другим клиентам (бизнес-решение).

Чтобы достичь этого, я подумал о том, чтобы вставить информацию об используемой версии SSL / TLS на прокси (Apache) в исходный HTTP-запрос, чтобы серверное приложение могло условно разместить это «обновите вашу систему, динозавр!» уведомление на основе фактически используемого метода безопасности транспортного уровня.

Как настроить инъекцию? Я нашел необходимые переменные среды только тогда, когда Apache скомпилирован с флагами отладки, но это невозможно в производственной среде.

Конечным результатом должно быть то, что прокси-сервер Apache вставляет заголовок HTTP-запроса «X-TLS-Version: SSL3» (или «X-TLS-Version: TLS12» или знакомый синтаксис).

Mod_ssl Apache делает ряд переменные среды доступно, когда SSLOptions директива +StdEnvVars включен, который включает протокол SSL:

SSL_PROTOCOL string Версия протокола SSL (SSLv2, SSLv3, TLSv1, TLSv1.1, TLSv1.2)

Который затем можно использовать как состояние установить заголовок при использовании SSLv3:

SSLOptions +StdEnvVars    
SetEnvIf SSL_PROTOCOL "SSLv3" insecure-protocol=true
RequestHeader set X-TLS-Version "SSLv3" env=insecure-protocol 

Чтобы всегда устанавливать заголовок с протоколом SSL, может работать следующее:

RequestHeader set X-TLS-Version %{SSL_PROTOCOL}s  

который имеет небольшое преимущество в том, что для простых сценариев вам не нужно нести накладные расходы SSLOptions +StdEnvVars но может получить доступ к определенным переменным SSL напрямую с помощью %{FOOBAR}s синтаксис.

ни один не был протестирован.

Устанавливать SSLOptions +StdEnvVars и множество переменных среды, связанных с SSL / TLS будет установлен. (И вы можете обнаружить, что это значение уже установлено в конфигурации вашего веб-сервера, как и в некоторых примерах конфигураций.)

Переменная среды, которую ваше приложение захочет проверить, будет SSL_PROTOCOL.

Приносим наши соболезнования за то, что не смогли вовремя удалить IE6 и XP из вашей среды.