Jenkins SSL Yapılandırması: Ubuntu 20.04’te Nginx Reverse Proxy ile Jenkins Güvenliği
Bu Rehberde Ne Öğreneceksiniz?
Bu rehberde Jenkins’i Nginx reverse proxy arkasına alarak SSL ile güvenli hale getireceksiniz.
Jenkins’e doğrudan erişimi kapatarak HTTPS üzerinden güvenli kullanım sağlayacaksınız.
Teknik Özet
Konu: Jenkins için SSL ve reverse proxy yapılandırması
Problem: Jenkins’in varsayılan olarak şifrelenmemiş çalışması
Çözüm: Nginx reverse proxy ve Let’s Encrypt SSL
Adımlar: Nginx yapılandırması → Jenkins erişim kısıtlama → Test
Ön Hazırlıklar
Devam etmeden önce aşağıdaki gereksinimler sağlanmalıdır:
- Ubuntu 20.04 yüklü bir sunucu
- Jenkins kurulu olması
- Nginx kurulu olması
- Alan adına tanımlı SSL sertifikası
- Alan adının sunucu IP adresine yönlendirilmiş olması
Örnek alan adı olarak
jenkins.rabisu.cloudkullanılmıştır.
1. Nginx Reverse Proxy Yapılandırması
Nginx, gelen HTTPS isteklerini Jenkins servisine yönlendirecek şekilde yapılandırılır.
Nginx yapılandırma dosyasını oluşturma
sudo nano /etc/nginx/sites-available/jenkins.rabisu.cloud
- Bu komut Jenkins için Nginx yapılandırma dosyasını açar.
Jenkins loglarını tanımlama
access_log /var/log/nginx/jenkins.access.log;
error_log /var/log/nginx/jenkins.error.log;
- Bu ayarlar Jenkins trafiğini ayrı log dosyalarına yazar.
Reverse proxy yapılandırması
location / {
include /etc/nginx/proxy_params;
proxy_pass http://localhost:8080;
proxy_read_timeout 90s;
proxy_redirect http://localhost:8080 https://jenkins.rabisu.cloud;
}
- Bu yapı Jenkins’i 8080 portundan HTTPS üzerinden yayınlar.
Yapılandırmayı test etme
sudo nginx -t
- Bu komut Nginx yapılandırma hatalarını kontrol eder.
2. Jenkins’i Yalnızca Localhost’a Kilitleme
- Jenkins’in 8080 portundan dış dünyaya açık olması engellenmelidir.
Jenkins yapılandırmasını düzenleme
sudo nano /etc/default/jenkins
Aşağıdaki satırı güncelleyin:
JENKINS_ARGS="--httpPort=8080 --httpListenAddress=127.0.0.1"
- Bu ayar Jenkins’e yalnızca sunucu içinden erişim sağlar.
Servisleri yeniden başlatma
sudo systemctl restart jenkins
sudo systemctl restart nginx
- Bu komutlar yeni ayarları etkinleştirir.
3. Yapılandırmayı Test Etme
- Tarayıcıdan aşağıdaki adrese gidin:
http://jenkins.rabisu.cloud
Adres otomatik olarak HTTPS’e yönlendirilmelidir. Tarayıcı adres çubuğunda kilit simgesi görünmelidir.
Jenkins URL kontrolü
- Jenkins arayüzünde aşağıdaki yolu izleyin:
Manage Jenkins → Configure System
- Jenkins Location alanındaki URL’nin https:// ile başladığını doğrulayın.
Sıkça Sorulan Sorular (SSS)
-
Neden Nginx reverse proxy kullanmalıyım? Nginx SSL yönetimini daha performanslı ve güvenli şekilde gerçekleştirir.
-
8080 portu hâlâ erişilebilir mi? Hayır. Jenkins yalnızca localhost üzerinden dinler.
-
502 Bad Gateway hatası alıyorum, neden? Jenkins servisi çalışmıyor olabilir. /var/log/nginx/jenkins.error.log dosyasını kontrol edin.
-
Mevcut projelerim etkilenir mi? Hayır. Bu işlem yalnızca erişim katmanını değiştirir.
Sonuç
Bu rehber ile Jenkins’i Nginx reverse proxy arkasında SSL ile güvenli hale getirdiniz. Jenkins arayüzü artık şifreli ve dış erişimlere karşı korumalıdır.
Bu mimari Rabisu Bulut altyapısında CI/CD süreçlerini güvenle çalıştırmak için uygundur.