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.