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

AWS ELB с SSL для бэкэнда без SSL и jenkins - конфигурация tomcat

Я настраиваю Jenkins с Tomcat на AWS за ELB. Я хочу, чтобы ELB разорвал SSL-соединения и установил не-SSL-соединения с серверной частью jenkins на 8080.

Моя связь выглядит так -

Входящий 443 в ELB -> входящий без SSL для jenkins на EC2 на 8080

Исходящий 443 на ELB <- трафик без SSL от Дженкинса, исходящий на ELB

У меня есть первая работающая, где я могу получить доступ к Дженкинсу через https: //. Однако Дженкинс говорит: «Похоже, что ваш обратный прокси-сервер не работает» и имеет ссылку на https://wiki.jenkins-ci.org/display/JENKINS/Jenkins+says+my+reverse+proxy+setup+is+broken

Я не слишком знаком с конфигурацией tomcat и думаю, что для этого нужна конфигурация прокси. Я попытался добавить proxyPort = "443" в свой server.xml для строки коннектора port = "8080" .., и это не сработало.

Как вы гарантируете, что ELB действует как SSL для прокси без SSL, а ответы jenkins http от tomcat отправляются как https: // ELB

После дальнейших попыток решить эту проблему я нашел способ сделать то, что хотел. Вместо того, чтобы развертывать войну из jenkins вручную, я установил jenkins из их репозитория RHEL, и, похоже, все работает хорошо.

Моя установка:

Интернет -> (443) ELB (443) ---> (8080) EC2 Jenkins

ELB не имеет включенного закрепления и разрывает соединения SSL. Подключение к бэкэнду Jenkins осуществляется через HTTP.

Надеюсь, это поможет любому, кто хочет запускать Jenkins непосредственно за ELB без веб-сервера между прокси.

Если вы развертываете Jenkins через файл WAR, вы можете настроить ELB для пересылки HTTPS-соединений через порт 8080.

В прослушивателях ELB настройте новый прослушиватель с протоколом HTTPS и измените порт с 443 на 8080. Выберите протокол экземпляра как HTTP и порт как 8080. Теперь, когда вы перейдете к https://jenkins.server.com:8080, он должен служить вам Дженкинсом, бегущим из WAR.