Передающая информация о протоколе SSL к бэкенду через HTTP-заголовок

После того, как уязвимость Пуделя была недавно показана, наша команда решила идти дальше от SSLv3. Но перед полным удалением, они хотят предупредить ежедневных пользователей, что их использование браузера удержало от использования SSLv3. Так, мы подошли идея

  • Обнаружьте протокол (SSLv3, TLS1 и т.д....) от разгрузки SSL фронтэнда (мы используем nginx),
  • Передайте ту информацию (протокол SSL) через HTTP-заголовок к бэкенду Apache.

Затем наш код бэкенда обработает тот заголовок и даст предупреждение если клиентское использование SSLv3.

Я зная, что nginx имеет функцию proxy_set_header. Таким образом, этот был бы прост как

proxy_set_header X-HTTPS-Protocol $something;

Теперь, проблема: очевидно, nginx знают протокол, используемый клиентом, но как я могу передать ту информацию бэкенду через HTTP-заголовок?

Спасибо


Как указано подобным пользователем перенаправления Apache потока, если они используют SSLv3, эта идея может, стал очень очень плохой идеей.

Причиной является квитирование TLS, происходит, прежде чем Трафик HTTP отправляется через туннель TLS. К тому времени, когда наш бэкенд обнаруживает протокол SSL, клиент, возможно, отправил частные данные в своем первом запросе. Для постоянного и долгосрочного решения мы должны рассмотреть для отключения SSLv3.

13
задан 13 April 2017 в 15:14
1 ответ

Nginx использует множество переменных, которые можно использовать в config. На этой странице представлен полный список переменных. Переменная, содержащая протокол в запросе HTTPS, - ssl_protocol . Цитата:

 $ ssl_protocol
 

возвращает протокол установленного SSL-соединения;

Таким образом, ваша конфигурация proxy_set_header будет

proxy_set_header X-HTTPS-Protocol $ssl_protocol;

Другая ссылка: здесь

14
ответ дан 2 December 2019 в 21:26

Теги

Похожие вопросы