Ana içeriğe geç

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.cloud kullanı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

  1. 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

  1. 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ü

  1. 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)

  1. Neden Nginx reverse proxy kullanmalıyım? Nginx SSL yönetimini daha performanslı ve güvenli şekilde gerçekleştirir.

  2. 8080 portu hâlâ erişilebilir mi? Hayır. Jenkins yalnızca localhost üzerinden dinler.

  3. 502 Bad Gateway hatası alıyorum, neden? Jenkins servisi çalışmıyor olabilir. /var/log/nginx/jenkins.error.log dosyasını kontrol edin.

  4. 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.