Я создаю прокси для внутреннего API, чтобы клиенты могли подключаться без необходимости устанавливать самозаверяющие сертификаты.
Клиенты (созданные, принадлежащие и используемые только для внутреннего использования) будут подключаться по протоколу SSL к блоку nginx, где я использую XSendfile для проверки учетных данных на уровне приложения (приложение rails). Если учетные данные верны, соединение передается обратно в nginx, где он использует proxy_pass для отправки соединения на вышестоящий сервер.
Теперь это прекрасно работает для стандартных http-соединений, но я пытаюсь выяснить, как добавить наши сертификаты в соединение.
Этот вопрос почти идентичен этому , но с неудобными требованиями к сертификатам.
Это возможно даже с nginx? Есть ли лучшее решение?
Я также согласился бы на http от клиента -> nginx и самозаверяющий сертификат от nginx к API.
источник
proxy_ssl_server_name on;
это было все, что мне нужно, чтобы это работало при проксировании трафика на хосте в Google App Engine с использованием встроенного SSL, управляемого Google! (Это не самоподписанный сертификат или что-то в этом роде, поэтому ему просто нужна была одна строка). Спасибо за отличный совет.Я думаю, что вы, вероятно, хотите что-то вроде этого (очевидно, упрощенно для этого примера):
Единственное, что вам, возможно, придется изменить, это сделать «Host» явным - если, например, ваше имя проксируемого хоста не совпадает с именем хоста, используемым на прокси-сервере nginx.
источник
Для тех, кто сталкивается с этим в будущем, я не использовал nginx для этого.
Вместо этого я использовал stunnel в «режиме клиента». Очень прост в настройке и делает именно то, что мне нужно.
источник