ОСНОВНОЕ

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