@t38c3j

Как проксировать SSL за reverse proxy?

Есть nginx в роли gateway, и куча внутренних сервисов за ним. Один из них сам выдает себе ssl, и у меня не получается подтянуть этот ssl в gateway чтоб он отдавался пользователю при посещении сайта. Как используя proxy_pass прокинуть этот ssl?

Текущая конфигурация gateway
server {
	listen 443;
	server_name example.com;

	location / {
		proxy_pass https://$upstream;
	}
}
  • Вопрос задан
  • 938 просмотров
Решения вопроса 1
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
А вас всего 3 варианта. Или физически доставать/копировать сертификат из докера, и пользоваться им на этом gateway. Или генерировать ещё один сертификат в Let'sEncrypt - и использовать его. Или выделять на gateway для этого хоста отдельный IP (или нестандартный порт), и весь трафик без обработки пропускать посредством stream { server {...} } (что не сильно отличается от iptables с DNAT).
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@Drno
Дать nginx доступ к сертификату. И указать его в настройках

Но вообще правильнее проксировать без ssl

Либо делать просто редирект
Ответ написан
Комментировать
karabanov
@karabanov
Системный администратор
server {
  listen 443 ssl;
  server_name example.com;

  ssl_certificate /path/to/proxy/cert/example.com/fullchain.pem;
  ssl_certificate_key /path/to/proxy/cert/example.com/privkey.pem;

  location / {
    proxy_pass https://$upstream;
    proxy_ssl_server_name on;
    proxy_ssl_name $host;
    proxy_set_header Host $host;
  }
}

Параметр ssl (0.7.14) указывает на то, что все соединения, принимаемые на данном порту, должны работать в режиме SSL. Это позволяет задать компактную конфигурацию для сервера, работающего сразу в двух режимах — HTTP и HTTPS.

Синтаксис listen
Ответ написан
SignFinder
@SignFinder
Wintel\Unix Engineer\DevOps
Что нужно делать-вам уже ответили выше.
А насчет - "подтянуть этот ssl в gateway чтоб он отдавался пользователю при посещении сайта" - SSL придуман именно для того, чтобы нельзя было "подтянуть этот ssl в gateway чтоб он отдавался пользователю при посещении сайта".
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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