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
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:2SSL 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
-
Jenkins’in dış dünyaya açık kalmaması gerekir.
-
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
- Ö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
- 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.