ОСНОВНОЕ

WORDPRESS

Операционные системы

Базы данных

Фреймворк Bootstrap

Там, где «если б» закралось в речь, об удаче мечтать смешно (Ибн Ар-Руми).

Как настроить Jenkins с помощью SSL и обратного прокси Nginx

FavoriteLoadingДобавить в избранное
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...

Статья опубликована: 7 мая 2017

Как настроить Jenkins с помощью SSL и обратного прокси Nginx

Введение

По умолчанию, Jenkins приходит со своим собственным встроенным веб-сервером Winstone, который прослушивает порт 8080, что удобно для начала работы. Как только вы серьезно возьметесь за использовании Jenkins, необходимо обеспечить его с помощью SSL для защиты паролей и других конфиденциальных данных, передаваемых через веб-интерфейс.

В этой статье мы покажем, как настроить Nginx в качестве обратного прокси-сервера, чтобы направлять запросы клиентов Jenkins. Для того, чтобы начать, вам необходимо выполнить каждое условие из указанных ниже.

Условия

Один сервер Ubuntu 16,04 сконфигурированный с внекорневым sudoпользователем и брандмауэром, следуя как в статьеруководство по первоначальной настройки сервера на Ubuntu 16.04 с установленными Jenkins и Nginx.

Когда вы выполнили эти требования, вы готовы начать.

Шаг первый – Настройка Nginx

В предварительных требованиях статьикак обеспечить Nginx с Encrypt Давай на Ubuntu 16.04, мы настроили Nginx использовать SSL в файле/etc/nginx/sites-available/default, так что мы будем откроем этот файл, чтобы добавить наши настройки обратного прокси – сервера.

 

Во- первых, мы добавим конкретный доступ и журналы ошибок в блокserverс параметрами конфигурации SSL:

/etc/nginx/sites-available/default
 

Затем мы настроим параметры прокси – сервера. Так как мы посылаем все запросы к Jenkins, мы закомментируйте по умолчанию строкуtry_files, которая, как написано, будет возвращать ошибку 404 , прежде чем запрос достигнет Jenkins.

/etc/nginx/sites-available/default
 

Затем мы добавим фактические параметры прокси – сервера. Конфигурация начинается в Nginx с установкойproxy_paramsкоторые обеспечивают такую информацию, как имя хост, протокол запроса клиента, а также IP – адрес клиента, которые будут доступны в нашем логе – файле. Далее, proxy_passустанавливает протокол и адрес проксируемого сервера, который в нашем случае является сервером Jenkins, который доступен на локальный хост по порту 8080. Затем мы увеличиваем proxy_read_timeoutс 60 по умолчанию в Nginx до рекомендуемого значения 90. И, наконец, мы добавимproxy_redirectчтобы гарантировать включение соответствующего имени хоста.

Обязательно замените свое SSL-защищенное имя домена в proxy_redirect, как в строке ниже:

/etc/nginx/sites-available/default
 

После того как вы сделали эти изменения, сохраните и закройте файл. Мы не собираемся перезагружать Nginx, пока мы не настроили Jenkins, но мы протестируем нашу конфигурацию:

 

Если все хорошо, то команда возвращает:

Вывод
 

Если нет, то исправить все обнаруженные ошибки, пока тест не будет пройден.

Примечание:
Если вы неправильно установитеproxy_pass(например, добавите слэш), вы получите что – то похожее на следующее на странице Configuration Jenkins.

Ошибка Jenkins: Настройка обратного прокси неверна

Если вы видите эту ошибку, проверьте настройкиproxy_passи proxy_redirectв конфигурации Nginx.

Шаг второй – Настройка Jenkins

Jenkins для работы с Nginx, необходимо обновить конфигурацию Jenkins, чтобы сервер Jenkins слушал только интерфейсlocalhost, а не все интерфейсы ( 0.0.0.0). Если Jenkins слушает все интерфейсы, то это потенциально доступно на незашифрованном порте ( 8080).

Мы изменим конфигурационный файл /etc/default/jenkins, чтобы сделать эти изменения.

 

Найдите строкуJENKINS_ARGSи добавьте--httpListenAddress=127.0.0.1к существующим аргументам:

/etc/default/jenkins
 

Сохраните и закройте файл.

Чтобы использовать новые параметры конфигурации, мы перезапустим Jenkins и Nginx.

 

Так как systemctlне отображает вывод, мы проверим статус:

 

Мы должны видеть статусactive (exited)в строкеActive:

Вывод
 

Мы повторим эти шаги для Nginx:

 

 

Вывод
 

Теперь, когда мы перезапустим оба сервера, мы должны в состоянии посетить домен с помощью либо HTTP или HTTPS. HTTP запросы будут автоматически перенаправлены на HTTPS, а сайт Jenkins будет обслуживаться надежно.

Шаг третий – Тестирование конфигурации

Мы будем тестировать конфигурацию путем сброса пароля администратора, когда мы включили шифрование. Мы начнем с посещения сайта с помощьюhttpчтобы убедиться, что мы заходим в Jenkins и перенаправляемся наhttps,как мы ожидали:

В вашем веб – браузере, введите «HTTP: // your.ssl.domain.name », подставляя свой домен вместоyour.ssl.domain.name. После нажатия клавиши ввода, URL должен начинаться с httpsи зеленый замок укажет, что соединение является безопасным.

Убедитесь, что Jenkins обслуживается через протокол HTTPS

Мы войдем adminв поле «User» и автоматически сгенерируем пароль, Jenkins создаст и хранит, когда мы его установили.

 

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

Перейдите к странице администратора пароля Jenkins

Нажмите кнопку «admin» в верхнем правом углу и выберите «Настройка» из выпадающего меню. Введите и подтвердите новый пароль и нажмите кнопку «Сохранить». Теперь вы можете использовать веб-интерфейс Jenkins надежно.

Вывод

В этом учебном пособии, после выполнения предварительных установок, мы настроили Nginx в качестве обратного прокси – сервера для встроенного веб – сервера Jenkins для того, чтобы защитить нашу информацию, передаваемую через веб – интерфейс. Если вы новичок в Jenkins, вы можете начать с учебника«Начало работы проекта с Jenkins: Создайте свой первый Pipeline.


Читайте также

Добавить комментарий

Войти с помощью: 

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Простая логическая игра "Поймай кота". Задача игры окружить кота точками так, чтобы он не смог убежать с поля. Постигла неудача - начни игру снова!

Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

badge
Обратный звонок 1
Отправить
galka

Спасибо! Ваша заявка принята

close
galka

Спасибо! Ваша заявка принята

close