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

Балансировщик нагрузки, EC2 - соединение HTTPS

Хорошо, это может быть вопрос новичка, но вот мой сценарий.

  1. На данный момент у меня есть балансировщик нагрузки, управляющий одним экземпляром EC2.
  2. У меня есть приложение, работающее на этом экземпляре EC2.

Чего мне хотелось бы достичь: 1. Полное соединение только HTTPS с моим приложением на EC2, которое в настоящее время привязано к 8080.

Как правильно этого добиться? 1. Должен ли я просто загрузить сертификат SSL в балансировщик нагрузки и принудительно установить SSL-соединение только между клиентом и балансировщиком нагрузки? Должен ли я позволить группе безопасности защищать трафик между балансировщиком нагрузки и EC2?

ИЛИ--

  1. Нужно ли мне настроить мой сервер веб-приложений tomcat с другим сертификатом и настроить его соединитель 443 https с путем к хранилищу ключей и перенаправить HTTP-соединения на порт 443?

ИЛИ--

Есть что-то, чего мне не хватает? Спасибо,

Самая простая конфигурация для ваших нужд может быть такой:

  1. Настройте Tomcat для прослушивания порта 8080 как HTTP
  2. Загрузите свой SSL-сертификат в ELB и настройте ELB для прерывания SSL.
  3. Перенаправьте порт 443 на ELB на порт 8080 на вашем экземпляре.
  4. Настройте группу безопасности EC2 для приема соединений только от группы безопасности ELB на порту 8080. Таким образом, никто не сможет обойти ваш ELB.

Это перенесет шифрование с вашего экземпляра EC2 на ELB.

Дополнительно:

  1. Также перенаправьте HTTP-порт 80 на ELB на другой порт на tomcat и перенаправьте HTTP на HTTPS.

Таким образом, если ваш клиент подключается по протоколу HTTP, он автоматически перенаправляется на HTTPS.

Обычно ваш балансировщик нагрузки будет обрабатывать согласование https-соединений с вашими клиентами, а затем он будет подключаться обратно к исходному серверу (-ам) tomcat, чтобы получить контент по обычному http (поскольку для этого короткого перехода не требуется слишком много шифрования, и, вероятно, вы можно доверять локальной сети). Вы должны настроить балансировщик нагрузки на перенаправление любых HTTP-запросов, которые он получает, на https, и вам нужно будет только настроить https-сертификат на балансировщике нагрузки. Для серверной части tomcat вам необходимо убедиться, что все ссылки являются относительными, или указать клиенту перейти на https.

Я не уверен на 100%, что это именно то, что вам нужно, поэтому дайте мне знать, если вы хотите узнать что-то другое.

Я думаю, что принятый ответ неверен. Загрузка вашего SSL-сертификата в балансировщик нагрузки и запрос канала HTTPS заставит балансировщик нагрузки расшифровать трафик SSL и передать его в расшифрованном виде за балансировщиком нагрузки. (OP запросил SSL для приложения).

В соответствии с документы ELB

«Если вы не хотите, чтобы балансировщик нагрузки обрабатывал завершение SSL (известное как разгрузка SSL), вы можете использовать TCP как для внешних, так и для внутренних подключений, а также развернуть сертификаты на зарегистрированных экземплярах, обрабатывающих запросы».

Итак, правильнее всего было бы перенаправить TCP: 443 (в балансировщике нагрузки) -> TCP: 443 (в экземпляре или какой-либо другой порт).

Если вы хотите сквозное шифрование, вы должны затем установить ключи SSL на сервере приложений.

Это также будет означать, что ELB не может возиться с вашими заголовками HTTPS - что, я думаю, необходимо для липких соединений. Для серверов приложений без сохранения состояния это не проблема.