Каков стандарт де-факто для обратного прокси-сервера, чтобы указать бэкэнд-SSL?

У меня есть обратный прокси, который делает HTTPS снаружи, но HTTP внутри.

Это означает, что по умолчанию URL-адреса в приложении будут иметь HTTP в качестве схемы, так как это связано с тем, как с ним связаны.

Как прокси-сервер может указать серверу, что HTTPS следует использовать?

Ответ 1

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

До сих пор я видел пару, используемую для принудительного использования https в схеме URL:

X-Forwarded-Protocol: https
X-Forwarded-Ssl: on
X-Url-Scheme: https

И wikipedia также упоминает:

# a de facto standard:
X-Forwarded-Proto: https
# Non-standard header used by Microsoft applications and load-balancers:
Front-End-Https: on

Это то, что вы должны добавить в VirtualHost на : другие прокси должны иметь схожие функции

RequestHeader set X-FORWARDED-PROTOCOL https
RequestHeader set X-Forwarded-Ssl on
# etc.

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