Ana içeriğe geç

Ubuntu 22.04 Jenkins SSL Kurulumu: Nginx Reverse Proxy ile Güvenli CI/CD

Ubuntu 22.04 Jenkins SSL Kurulumu (Nginx Reverse Proxy)

Bu rehberde

oaicite:0
sunucusunu,
oaicite:1
kullanarak SSL ile güvenli hale getireceksiniz.

Amaç, Jenkins arayüzündeki şifreleri ve hassas verileri HTTPS ile korumaktır.


Bu Rehberde Ne Öğreneceksiniz?

  • Nginx’i Jenkins için reverse proxy olarak yapılandırmayı
  • Jenkins’i dış erişime kapatmayı
  • SSL ile HTTPS üzerinden güvenli erişim sağlamayı

Teknik Özet

Konu: Jenkins SSL ve reverse proxy yapılandırması
Problem: Jenkins’in 8080 portunda şifresiz çalışması
Çözüm: Nginx + SSL ile güvenli tünel

Bu yapı:

  • Jenkins’i doğrudan erişime kapatır
  • Tüm trafiği HTTPS üzerinden şifreler

Ön Gereksinimler

Devam etmeden önce şunlar hazır olmalı:

  • Ubuntu 22.04 yüklü bir sunucu
  • Jenkins kurulu ve çalışıyor olmalı
  • Nginx kurulu olmalı
  • oaicite:2
    SSL sertifikası alınmış olmalı
  • Alan adı (örnek: jenkins.sizin-domaininiz.com)

1️⃣ Nginx Reverse Proxy Yapılandırması

Alan adınıza ait Nginx yapılandırma dosyasını açın:

sudo nano /etc/nginx/sites-available/jenkins.sizin-domaininiz.com
  • Bu dosya Jenkins isteklerini yönetecek.

Jenkins Log Ayarları


access_log /var/log/nginx/jenkins.access.log;
error_log /var/log/nginx/jenkins.error.log;
  • Bu ayarlar Jenkins trafiğini ayrı loglar.

Varsayılan try_files Satırını Kapatın


# try_files $uri $uri/ =404;
  • Bu satır Jenkins isteklerini engelleyebilir.

Reverse Proxy Ayarları


location / {
include /etc/nginx/proxy_params;
proxy_pass http://localhost:8080;
proxy_read_timeout 90s;
proxy_redirect http://localhost:8080 https://jenkins.sizin-domaininiz.com;
}
  • Bu yapı HTTPS isteklerini Jenkins’e güvenli şekilde iletir.

Yapılandırmayı Test Edin


sudo nginx -t
  • Bu komut Nginx ayarlarının doğru olduğunu kontrol eder.

2️⃣ Jenkins’i Sadece Localhost’a Açma

  1. Jenkins’in dış dünyaya açık kalmaması gerekir.

  2. Yapılandırma dosyasını açın:


sudo nano /etc/default/jenkins

Aşağıdaki satırı düzenleyin:


JENKINS_ARGS="--webroot=/var/cache/$NAME/war --httpPort=$HTTP_PORT --httpListenAddress=127.0.0.1"
  • Bu ayar Jenkins’i sadece localhost üzerinden erişilebilir yapar.

3️⃣ Servisleri Yeniden Başlatma

  1. Önce Jenkins’i yeniden başlatın:

sudo systemctl restart jenkins
  • Bu komut Jenkins ayarlarını aktif eder.

Ardından Nginx’i yeniden başlatın:


sudo systemctl restart nginx
  • Bu işlem reverse proxy ve SSL yapılandırmasını devreye alır.

4️⃣ HTTPS Üzerinden Test Etme

  1. Tarayıcıdan alan adınıza gidin:

https://jenkins.sizin-domaininiz.com
  • Adres çubuğunda kilit simgesi görünmelidir 🔒

  • HTTP istekleri otomatik olarak HTTPS’e yönlenir.


Sıkça Sorulan Sorular (SSS)

1. Jenkins neden sadece 127.0.0.1’e kısıtlandı? Nginx atlanarak şifresiz erişimi önlemek için.

2. “Reverse proxy set up is broken” hatası neden olur? Genelde proxy_redirect satırı hatalıdır.

3. 502 Bad Gateway alıyorum, ne yapmalıyım? Jenkins servisinin çalıştığını kontrol edin.

4. SSL zorunlu mu? Production ortamlar için kesinlikle evet.


Sonuç

Tebrikler Ubuntu 22.04 üzerinde Jenkins’i: SSL ile şifrelediniz, Nginx arkasına aldınız, Güvenli CI/CD ortamı kurdunuz

Artık Jenkins production kullanıma hazır 🚀

Bu yapıyı Rabisu Bulut Ubuntu sunucularında dakikalar içinde güvenle hayata geçirebilirsiniz.