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.