{"id":37531,"date":"2026-01-07T22:40:59","date_gmt":"2026-01-07T19:40:59","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=37531"},"modified":"2026-01-07T22:40:59","modified_gmt":"2026-01-07T19:40:59","slug":"jenkinsi-nginx-ters-proxy-kullanarak-ssl-ile-yapilandirma-ubuntu-22-04-uzerinde","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/jenkinsi-nginx-ters-proxy-kullanarak-ssl-ile-yapilandirma-ubuntu-22-04-uzerinde\/","title":{"rendered":"Jenkins&#8217;i Nginx Ters Proxy Kullanarak SSL ile Yap\u0131land\u0131rma (Ubuntu 22.04 \u00dczerinde)"},"content":{"rendered":"<p><body><\/p>\n<h2>Jenkins&#8217;i Nginx Ters Proxy Kullanarak SSL ile Yap\u0131land\u0131rma (Ubuntu 22.04 \u00dczerinde)<\/h2>\n<h3>Giri\u015f<\/h3>\n<p>G\u00fcn\u00fcm\u00fcz\u00fcn h\u0131zla geli\u015fen yaz\u0131l\u0131m geli\u015ftirme d\u00fcnyas\u0131nda, s\u00fcrekli entegrasyon (CI) ve s\u00fcrekli da\u011f\u0131t\u0131m (CD) s\u00fcre\u00e7leri, projelerin ba\u015far\u0131s\u0131 i\u00e7in vazge\u00e7ilmez hale gelmi\u015ftir. Bu s\u00fcre\u00e7lerin kalbinde yer alan ara\u00e7lardan biri de \u015f\u00fcphesiz Jenkins&#8217;tir. Jenkins, geli\u015ftiricilere otomasyon, test ve da\u011f\u0131t\u0131m s\u00fcre\u00e7lerini y\u00f6netmeleri i\u00e7in g\u00fc\u00e7l\u00fc ve esnek bir platform sunar. Ancak, Jenkins sunucular\u0131na eri\u015fimin genellikle internet \u00fczerinden yap\u0131ld\u0131\u011f\u0131 d\u00fc\u015f\u00fcn\u00fcl\u00fcrse, g\u00fcvenlik konusu kritik bir \u00f6neme sahiptir. Hassas kod depolar\u0131, kimlik bilgileri ve da\u011f\u0131t\u0131m s\u00fcre\u00e7leri gibi verilerin g\u00fcvenli\u011fini sa\u011flamak i\u00e7in SSL\/TLS \u015fifrelemesi kullanmak bir zorunluluktur.<\/p>\n<p>Bu makalede, Jenkins sunucunuzu Ubuntu 22.04 i\u015fletim sistemi \u00fczerinde Nginx ters proxy kullanarak SSL (HTTPS) ile nas\u0131l yap\u0131land\u0131raca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m detayl\u0131 bir \u015fekilde anlataca\u011f\u0131z. Nginx, y\u00fcksek performansl\u0131 bir web sunucusu olmas\u0131n\u0131n yan\u0131 s\u0131ra, ters proxy, y\u00fck dengeleme ve SSL sonland\u0131rma gibi geli\u015fmi\u015f \u00f6zellikler sunarak Jenkins ortam\u0131n\u0131z\u0131 daha g\u00fcvenli ve verimli hale getirmenize olanak tan\u0131r. Let&#8217;s Encrypt&#8217;in \u00fccretsiz SSL sertifikalar\u0131 ve Certbot arac\u0131 sayesinde, bu g\u00fcvenlik katman\u0131n\u0131 eklemek art\u0131k her zamankinden daha kolayd\u0131r.<\/p>\n<p>Bu rehber, Jenkins&#8217;inizi g\u00fcvenli bir \u015fekilde internete a\u00e7mak, veri b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc sa\u011flamak ve kullan\u0131c\u0131lar\u0131n\u0131z\u0131n g\u00fcvenini kazanmak isteyen sistem y\u00f6neticileri ve DevOps m\u00fchendisleri i\u00e7in haz\u0131rlanm\u0131\u015ft\u0131r. Makalenin sonunda, tam i\u015flevsel ve g\u00fcvenli bir Jenkins ortam\u0131na sahip olacaks\u0131n\u0131z.<\/p>\n<h3>\u00d6n Ko\u015fullar<\/h3>\n<p>Bu rehbere ba\u015flamadan \u00f6nce, a\u015fa\u011f\u0131daki \u00f6n ko\u015fullar\u0131n yerine getirildi\u011finden emin olmal\u0131s\u0131n\u0131z:<\/p>\n<p>*   <strong>Ubuntu 22.04 Sunucusu:<\/strong> SSH eri\u015fimi olan ve <code>sudo<\/code> yetkilerine sahip bir Ubuntu 22.04 sunucusu. T\u00fcm komutlar <code>sudo<\/code> ayr\u0131cal\u0131klar\u0131yla \u00e7al\u0131\u015ft\u0131r\u0131lacakt\u0131r.<br \/>\n*   <strong>Bir Alan Ad\u0131 (Domain Name):<\/strong> Jenkins kurulumunuza eri\u015fmek i\u00e7in kullanaca\u011f\u0131n\u0131z, \u00f6rne\u011fin <code>jenkins.alanadiniz.com<\/code> gibi bir alan ad\u0131na sahip olman\u0131z gerekmektedir.<br \/>\n*   <strong>DNS Kayd\u0131:<\/strong> Alan ad\u0131n\u0131z\u0131n (\u00f6rne\u011fin <code>jenkins.alanadiniz.com<\/code>) sunucunuzun genel IP adresini i\u015faret eden bir A kayd\u0131na sahip olmas\u0131 gerekmektedir. DNS de\u011fi\u015fikliklerinin yay\u0131lmas\u0131 biraz zaman alabilir, bu nedenle devam etmeden \u00f6nce bu kayd\u0131n do\u011fru \u015fekilde \u00e7\u00f6z\u00fcmlendi\u011finden emin olun.<br \/>\n*   <strong>Jenkins Kurulumu:<\/strong> Jenkins&#8217;in sunucunuzda kurulu ve varsay\u0131lan 8080 portu \u00fczerinden eri\u015filebilir olmas\u0131 gerekmektedir. E\u011fer Jenkins kurulu de\u011filse, ilk ad\u0131mda kurulumunu ele alaca\u011f\u0131z.<br \/>\n*   <strong>G\u00fcvenlik Duvar\u0131 (UFW):<\/strong> Ubuntu&#8217;nun varsay\u0131lan g\u00fcvenlik duvar\u0131 olan UFW&#8217;nin kurulu ve yap\u0131land\u0131r\u0131lm\u0131\u015f olmas\u0131 iyi bir g\u00fcvenlik uygulamas\u0131d\u0131r. Bu rehberde, Nginx&#8217;in ihtiya\u00e7 duydu\u011fu portlar\u0131 a\u00e7mak i\u00e7in UFW ayarlar\u0131n\u0131 da yapaca\u011f\u0131z.<\/p>\n<h3>Ad\u0131m 1: Jenkins Kurulumu ve Ba\u015flang\u0131\u00e7 Yap\u0131land\u0131rmas\u0131 (Gerekliyse)<\/h3>\n<p>E\u011fer Jenkins sunucunuzda zaten kurulu ve 8080 portundan eri\u015filebilir durumdaysa, bu ad\u0131m\u0131 atlayabilirsiniz. Aksi takdirde, Jenkins&#8217;i kurmak i\u00e7in a\u015fa\u011f\u0131daki ad\u0131mlar\u0131 izleyin.<\/p>\n<h4>Java Kurulumu<\/h4>\n<p>Jenkins bir Java uygulamas\u0131d\u0131r, bu nedenle \u00f6ncelikle Java Development Kit (JDK) kurman\u0131z gerekir. Jenkins 2.357 ve sonras\u0131 i\u00e7in Java 11 veya Java 17 \u00f6nerilir. Biz bu rehberde OpenJDK 17&#8217;yi kuraca\u011f\u0131z.<\/p>\n<pre><code class=\"language-bash\">sudo apt update\nsudo apt install openjdk-17-jdk -y<\/code><\/pre>\n<p>Kurulumun ba\u015far\u0131l\u0131 oldu\u011funu do\u011frulamak i\u00e7in Java s\u00fcr\u00fcm\u00fcn\u00fc kontrol edin:<\/p>\n<pre><code class=\"language-bash\">java -version<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131, OpenJDK 17&#8217;yi g\u00f6stermelidir.<\/p>\n<h4>Jenkins Deposu Ekleme<\/h4>\n<p>Jenkins&#8217;i <code>apt<\/code> paket y\u00f6neticisi arac\u0131l\u0131\u011f\u0131yla kurmak i\u00e7in Jenkins APT deposunu sisteminize eklemeniz gerekir.<\/p>\n<pre><code class=\"language-bash\">sudo wget -O \/usr\/share\/keyrings\/jenkins-keyring.asc \\\n  https:\/\/pkg.jenkins.io\/debian-stable\/jenkins.io-2023.key\necho \"deb [signed-by=\/usr\/share\/keyrings\/jenkins-keyring.asc] \\\n  https:\/\/pkg.jenkins.io\/debian-stable binary\/\" | sudo tee \\\n  \/etc\/apt\/sources.list.d\/jenkins.list > \/dev\/null<\/code><\/pre>\n<h4>Jenkins Kurulumu<\/h4>\n<p>Depoyu ekledikten sonra, paket listesini g\u00fcncelleyin ve Jenkins&#8217;i kurun:<\/p>\n<pre><code class=\"language-bash\">sudo apt update\nsudo apt install jenkins -y<\/code><\/pre>\n<h4>Jenkins Servisini Ba\u015flatma ve Kontrol Etme<\/h4>\n<p>Jenkins kurulumdan sonra otomatik olarak ba\u015flamal\u0131d\u0131r. Servisin durumunu kontrol edebilir ve gerekirse manuel olarak ba\u015flatabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl start jenkins\nsudo systemctl enable jenkins\nsudo systemctl status jenkins<\/code><\/pre>\n<p><code>status<\/code> komutunun \u00e7\u0131kt\u0131s\u0131nda &#8220;active (running)&#8221; ifadesini g\u00f6rmelisiniz.<\/p>\n<h4>UFW \u00dczerinden Jenkins Portunu A\u00e7ma<\/h4>\n<p>E\u011fer UFW kullan\u0131yorsan\u0131z, Jenkins&#8217;in varsay\u0131lan portu olan 8080&#8217;e eri\u015fime izin vermeniz gerekir:<\/p>\n<pre><code class=\"language-bash\">sudo ufw allow 8080\nsudo ufw enable # E\u011fer UFW aktif de\u011filse<\/code><\/pre>\n<h4>Jenkins \u0130lk Yap\u0131land\u0131rmas\u0131<\/h4>\n<p>\u015eimdi bir web taray\u0131c\u0131s\u0131 a\u00e7\u0131n ve sunucunuzun IP adresi veya alan ad\u0131n\u0131zla 8080 portundan Jenkins&#8217;e eri\u015fin (\u00f6rne\u011fin, <code>http:\/\/sunucu_ip_adresi:8080<\/code>). \u0130lk eri\u015fimde, y\u00f6netici parolas\u0131n\u0131 girmeniz istenecektir. Bu parola, a\u015fa\u011f\u0131daki dosyada bulunur:<\/p>\n<pre><code class=\"language-bash\">sudo cat \/var\/lib\/jenkins\/secrets\/initialAdminPassword<\/code><\/pre>\n<p>Parolay\u0131 kopyalay\u0131p web aray\u00fcz\u00fcndeki ilgili alana yap\u0131\u015ft\u0131r\u0131n. Ard\u0131ndan, eklentileri y\u00fckleme se\u00e7ene\u011fi sunulacakt\u0131r. &#8220;Install suggested plugins&#8221; (\u00d6nerilen eklentileri y\u00fckle) se\u00e7ene\u011fini tercih etmeniz \u00f6nerilir. Eklentiler y\u00fcklendikten sonra, ilk y\u00f6netici hesab\u0131n\u0131 olu\u015fturman\u0131z istenecektir. Gerekli bilgileri girerek hesab\u0131 olu\u015fturun ve Jenkins&#8217;i kullanmaya ba\u015flay\u0131n. Bu a\u015famada Jenkins&#8217;e HTTP \u00fczerinden eri\u015fiyor olman\u0131z normaldir.<\/p>\n<h3>Ad\u0131m 2: Nginx Kurulumu<\/h3>\n<p>Jenkins&#8217;i g\u00fcvenli bir \u015fekilde yay\u0131nlamak i\u00e7in Nginx&#8217;i ters proxy olarak kullanaca\u011f\u0131z. Nginx&#8217;i kurmak i\u00e7in a\u015fa\u011f\u0131daki ad\u0131mlar\u0131 izleyin:<\/p>\n<pre><code class=\"language-bash\">sudo apt update\nsudo apt install nginx -y<\/code><\/pre>\n<h4>Nginx Servisini Kontrol Etme<\/h4>\n<p>Kurulumdan sonra Nginx servisi otomatik olarak ba\u015flamal\u0131d\u0131r. Durumunu kontrol edin:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl status nginx<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131da &#8220;active (running)&#8221; ifadesini g\u00f6rmelisiniz.<\/p>\n<h4>UFW \u00dczerinden Nginx Portlar\u0131n\u0131 A\u00e7ma<\/h4>\n<p>UFW kullan\u0131yorsan\u0131z, Nginx&#8217;in HTTP (80) ve HTTPS (443) portlar\u0131na eri\u015fime izin vermeniz gerekir. Nginx, UFW ile entegre profillerle gelir:<\/p>\n<pre><code class=\"language-bash\">sudo ufw allow 'Nginx HTTP'\nsudo ufw allow 'Nginx HTTPS'\nsudo ufw reload\nsudo ufw status<\/code><\/pre>\n<p><code>sudo ufw status<\/code> komutu \u00e7\u0131kt\u0131s\u0131nda &#8220;Nginx HTTP&#8221; ve &#8220;Nginx HTTPS&#8221; profillerinin &#8220;ALLOW&#8221; olarak listelendi\u011fini g\u00f6rmelisiniz.<\/p>\n<h3>Ad\u0131m 3: Alan Ad\u0131 ve DNS Ayarlar\u0131n\u0131 Do\u011frulama<\/h3>\n<p>SSL sertifikas\u0131 alabilmek ve Jenkins&#8217;e g\u00fcvenli bir \u015fekilde eri\u015febilmek i\u00e7in bir alan ad\u0131na ve bu alan ad\u0131n\u0131n sunucunuzun IP adresini i\u015faret eden do\u011fru bir DNS A kayd\u0131na sahip olman\u0131z kritik \u00f6neme sahiptir.<\/p>\n<p>\u00d6rne\u011fin, Jenkins&#8217;inize <code>jenkins.alanadiniz.com<\/code> adresinden eri\u015fmek istiyorsan\u0131z, DNS sa\u011flay\u0131c\u0131n\u0131z\u0131n kontrol panelinde a\u015fa\u011f\u0131daki gibi bir A kayd\u0131 olu\u015fturmal\u0131s\u0131n\u0131z:<\/p>\n<p>*   <strong>Tip:<\/strong> A<br \/>\n*   <strong>Ad (Host):<\/strong> <code>jenkins<\/code> (veya <code>@<\/code> e\u011fer do\u011frudan ana alan ad\u0131n\u0131 kullan\u0131yorsan\u0131z)<br \/>\n*   <strong>De\u011fer (Value):<\/strong> <code>Sunucunuzun_Genel_IP_Adresi<\/code><\/p>\n<p>DNS de\u011fi\u015fikliklerinin internet genelinde yay\u0131lmas\u0131 birka\u00e7 dakika ila birka\u00e7 saat s\u00fcrebilir. Bu s\u00fcreci h\u0131zland\u0131rmak i\u00e7in <code>dig<\/code> veya <code>nslookup<\/code> gibi ara\u00e7lar\u0131 kullanarak alan ad\u0131n\u0131z\u0131n do\u011fru IP adresini \u00e7\u00f6z\u00fcp \u00e7\u00f6zmedi\u011fini kontrol edebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">dig jenkins.alanadiniz.com\n<h2>veya<\/h2>\nnslookup jenkins.alanadiniz.com<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131da, alan ad\u0131n\u0131z\u0131n sunucunuzun do\u011fru IP adresine \u00e7\u00f6z\u00fcmlendi\u011fini g\u00f6rmelisiniz. Bu ad\u0131m tamamlanmadan devam etmek, SSL sertifikas\u0131 alma s\u00fcrecinde sorunlara yol a\u00e7acakt\u0131r.<\/p>\n<h3>Ad\u0131m 4: Nginx i\u00e7in Jenkins Ters Proxy Yap\u0131land\u0131rmas\u0131<\/h3>\n<p>\u015eimdi Nginx&#8217;i Jenkins i\u00e7in bir ters proxy olarak yap\u0131land\u0131raca\u011f\u0131z. Bu, t\u00fcm web trafi\u011finin Nginx \u00fczerinden ge\u00e7mesini ve Nginx&#8217;in trafi\u011fi dahili olarak Jenkins&#8217;in 8080 portuna y\u00f6nlendirmesini sa\u011flayacakt\u0131r.<\/p>\n<h4>Yeni Bir Nginx Sunucu Blo\u011fu Dosyas\u0131 Olu\u015fturma<\/h4>\n<p>Yeni bir yap\u0131land\u0131rma dosyas\u0131 olu\u015fturmak i\u00e7in <code>\/etc\/nginx\/sites-available\/<\/code> dizininde bir dosya olu\u015fturun. Dosya ad\u0131 olarak alan ad\u0131n\u0131z\u0131 kullanmak iyi bir uygulamad\u0131r:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/nginx\/sites-available\/jenkins.alanadiniz.com<\/code><\/pre>\n<p>A\u015fa\u011f\u0131daki yap\u0131land\u0131rmay\u0131 dosyaya yap\u0131\u015ft\u0131r\u0131n. <code>jenkins.alanadiniz.com<\/code> k\u0131sm\u0131n\u0131 kendi alan ad\u0131n\u0131zla de\u011fi\u015ftirmeyi unutmay\u0131n.<\/p>\n<pre><code class=\"language-nginx\">server {\n    listen 80;\n    listen [::]:80;\n    server_name jenkins.alanadiniz.com;\n\n    location \/ {\n        proxy_pass http:\/\/localhost:8080;\n        proxy_set_header Host $host;\n        proxy_set_header X-Real-IP $remote_addr;\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n        proxy_set_header X-Forwarded-Proto $scheme;\n        proxy_connect_timeout 600;\n        proxy_send_timeout 600;\n        proxy_read_timeout 600;\n        send_timeout 600;\n        proxy_buffering off;\n        proxy_request_buffering off;\n        # Jenkins i\u00e7in \u00f6zel ba\u015fl\u0131klar\n        proxy_set_header X-Jenkins $host;\n        proxy_redirect default; # Jenkins'in yeniden y\u00f6nlendirmelerini do\u011fru \u015fekilde i\u015flemesini sa\u011flar\n    }\n}<\/code><\/pre>\n<p>Bu yap\u0131land\u0131rmay\u0131 a\u00e7\u0131klayal\u0131m:<\/p>\n<p>*   <code>listen 80;<\/code>: Nginx&#8217;in 80 (HTTP) portunu dinlemesini sa\u011flar.<br \/>\n*   <code>server_name jenkins.alanadiniz.com;<\/code>: Bu sunucu blo\u011funun hangi alan ad\u0131 isteklerine yan\u0131t verece\u011fini belirtir.<br \/>\n*   <code>location \/ { ... }<\/code>: Gelen t\u00fcm istekleri i\u015fler.<br \/>\n*   <code>proxy_pass http:\/\/localhost:8080;<\/code>: Gelen istekleri <code>localhost<\/code> \u00fczerindeki 8080 portunda \u00e7al\u0131\u015fan Jenkins&#8217;e y\u00f6nlendirir.<br \/>\n*   <code>proxy_set_header ...<\/code>: Bu ba\u015fl\u0131klar, orijinal istemci IP adresi, ana bilgisayar ad\u0131 ve protokol gibi bilgileri Jenkins&#8217;e iletmek i\u00e7in \u00f6nemlidir. Bu sayede Jenkins, isteklerin ger\u00e7ek kayna\u011f\u0131n\u0131 ve nas\u0131l geldi\u011fini bilir. \u00d6zellikle <code>X-Forwarded-Proto $scheme;<\/code> HTTPS kullan\u0131ld\u0131\u011f\u0131nda Jenkins&#8217;in do\u011fru URL&#8217;ler olu\u015fturmas\u0131 i\u00e7in kritiktir.<br \/>\n*   <code>proxy_connect_timeout<\/code>, <code>proxy_send_timeout<\/code>, <code>proxy_read_timeout<\/code>, <code>send_timeout<\/code>: Zaman a\u015f\u0131m\u0131 ayarlar\u0131d\u0131r, b\u00fcy\u00fck derleme i\u015fleri veya uzun s\u00fcreli i\u015flemler i\u00e7in art\u0131r\u0131lm\u0131\u015ft\u0131r.<br \/>\n*   <code>proxy_buffering off;<\/code>, <code>proxy_request_buffering off;<\/code>: Jenkins&#8217;in WebSocket veya Server-Sent Events gibi canl\u0131 ba\u011flant\u0131lar\u0131 d\u00fczg\u00fcn bir \u015fekilde i\u015flemesini sa\u011flamak i\u00e7in proxy arabelle\u011fini kapat\u0131r.<br \/>\n*   <code>proxy_set_header X-Jenkins $host;<\/code>: Jenkins&#8217;in do\u011fru URL&#8217;yi alg\u0131lamas\u0131na yard\u0131mc\u0131 olan \u00f6zel bir ba\u015fl\u0131kt\u0131r.<br \/>\n*   <code>proxy_redirect default;<\/code>: Jenkins&#8217;in kendi i\u00e7indeki yeniden y\u00f6nlendirmelerini (\u00f6rne\u011fin <code>\/login<\/code> sayfas\u0131na) Nginx&#8217;in do\u011fru \u015fekilde i\u015flemesini sa\u011flar.<\/p>\n<p>Dosyay\u0131 kaydedin ve kapat\u0131n (Nano i\u00e7in <code>Ctrl+O<\/code>, <code>Enter<\/code>, <code>Ctrl+X<\/code>).<\/p>\n<h4>Yap\u0131land\u0131rmay\u0131 Etkinle\u015ftirme<\/h4>\n<p>Olu\u015fturdu\u011funuz yap\u0131land\u0131rma dosyas\u0131n\u0131 etkinle\u015ftirmek i\u00e7in <code>\/etc\/nginx\/sites-enabled\/<\/code> dizinine sembolik bir ba\u011flant\u0131 olu\u015fturun:<\/p>\n<pre><code class=\"language-bash\">sudo ln -s \/etc\/nginx\/sites-available\/jenkins.alanadiniz.com \/etc\/nginx\/sites-enabled\/<\/code><\/pre>\n<h4>Varsay\u0131lan Nginx Yap\u0131land\u0131rmas\u0131n\u0131 Devre D\u0131\u015f\u0131 B\u0131rakma (\u00d6nerilir)<\/h4>\n<p>\u00c7ak\u0131\u015fmalar\u0131 \u00f6nlemek i\u00e7in varsay\u0131lan Nginx yap\u0131land\u0131rma dosyas\u0131n\u0131 devre d\u0131\u015f\u0131 b\u0131rakmak iyi bir uygulamad\u0131r:<\/p>\n<pre><code class=\"language-bash\">sudo unlink \/etc\/nginx\/sites-enabled\/default<\/code><\/pre>\n<h4>Nginx Yap\u0131land\u0131rmas\u0131n\u0131 Test Etme<\/h4>\n<p>De\u011fi\u015fiklikleri uygulamadan \u00f6nce Nginx yap\u0131land\u0131rma dosyan\u0131zda herhangi bir s\u00f6zdizimi hatas\u0131 olup olmad\u0131\u011f\u0131n\u0131 kontrol etmek \u00f6nemlidir:<\/p>\n<pre><code class=\"language-bash\">sudo nginx -t<\/code><\/pre>\n<p>E\u011fer her \u015fey yolundaysa, &#8220;test is successful&#8221; mesaj\u0131n\u0131 g\u00f6rmelisiniz.<\/p>\n<h4>Nginx&#8217;i Yeniden Ba\u015flatma<\/h4>\n<p>Yap\u0131land\u0131rma de\u011fi\u015fikliklerini uygulamak i\u00e7in Nginx servisini yeniden ba\u015flat\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart nginx<\/code><\/pre>\n<p>\u015eimdi bir web taray\u0131c\u0131s\u0131 a\u00e7\u0131n ve alan ad\u0131n\u0131zla (\u00f6rne\u011fin <code>http:\/\/jenkins.alanadiniz.com<\/code>) Jenkins&#8217;e eri\u015fmeye \u00e7al\u0131\u015f\u0131n. Art\u0131k 8080 portunu belirtmenize gerek kalmadan Jenkins aray\u00fcz\u00fcn\u00fc g\u00f6rmelisiniz. Bu, Nginx&#8217;in ters proxy olarak ba\u015far\u0131yla \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 g\u00f6sterir. Ancak hen\u00fcz SSL kullanm\u0131yoruz.<\/p>\n<h3>Ad\u0131m 5: Let&#8217;s Encrypt SSL Sertifikas\u0131 Al\u0131m\u0131 (Certbot ile)<\/h3>\n<p>Nginx \u00fczerinden HTTPS sa\u011flamak i\u00e7in Let&#8217;s Encrypt&#8217;in \u00fccretsiz SSL sertifikalar\u0131n\u0131 kullanaca\u011f\u0131z. Certbot arac\u0131, bu s\u00fcreci otomatikle\u015ftirir.<\/p>\n<h4>Certbot Kurulumu<\/h4>\n<p>Certbot ve Nginx eklentisini kurun:<\/p>\n<pre><code class=\"language-bash\">sudo apt install certbot python3-certbot-nginx -y<\/code><\/pre>\n<h4>SSL Sertifikas\u0131 Alma<\/h4>\n<p>Certbot&#8217;u Nginx eklentisiyle \u00e7al\u0131\u015ft\u0131rarak alan ad\u0131n\u0131z i\u00e7in bir SSL sertifikas\u0131 al\u0131n. Certbot, Nginx yap\u0131land\u0131rman\u0131z\u0131 otomatik olarak alg\u0131layacak ve g\u00fcncelleyecektir:<\/p>\n<pre><code class=\"language-bash\">sudo certbot --nginx -d jenkins.alanadiniz.com<\/code><\/pre>\n<p>Komutu \u00e7al\u0131\u015ft\u0131rd\u0131ktan sonra, Certbot sizden baz\u0131 bilgiler isteyecektir:<\/p>\n<p>1.  <strong>E-posta adresi:<\/strong> Acil durum bildirimleri ve sertifika yenileme hat\u0131rlat\u0131c\u0131lar\u0131 i\u00e7in.<br \/>\n2.  <strong>Hizmet \u015fartlar\u0131n\u0131 kabul etme:<\/strong> Let&#8217;s Encrypt hizmet \u015fartlar\u0131n\u0131 okuyup kabul etmeniz gerekecektir.<br \/>\n3.  <strong>EFF (Electronic Frontier Foundation) ile e-posta payla\u015fma:<\/strong> \u0130ste\u011fe ba\u011fl\u0131d\u0131r, karar\u0131n\u0131za g\u00f6re &#8220;Y&#8221; veya &#8220;N&#8221; girebilirsiniz.<\/p>\n<p>E\u011fer her \u015fey yolundaysa, Certbot sertifikay\u0131 ba\u015far\u0131yla alacak ve Nginx yap\u0131land\u0131rma dosyan\u0131z\u0131 otomatik olarak g\u00fcncelleyerek HTTP trafi\u011fini HTTPS&#8217;e y\u00f6nlendirecek \u015fekilde ayarlayacakt\u0131r. Ba\u015far\u0131l\u0131 bir mesaj g\u00f6rmelisiniz:<\/p>\n<pre><code class=\"language-\">Congratulations! You have successfully enabled HTTPS on https:\/\/jenkins.alanadiniz.com<\/code><\/pre>\n<h4>Otomatik Yenilemeyi Test Etme<\/h4>\n<p>Let&#8217;s Encrypt sertifikalar\u0131 90 g\u00fcn ge\u00e7erlidir. Certbot, bu sertifikalar\u0131 otomatik olarak yenilemek i\u00e7in bir cron job veya systemd timer ayarlar. Yenileme mekanizmas\u0131n\u0131n \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 test etmek i\u00e7in a\u015fa\u011f\u0131daki komutu kullanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo certbot renew --dry-run<\/code><\/pre>\n<p>Bu komut, sertifikalar\u0131 yenilemeden yenileme s\u00fcrecini sim\u00fcle eder. E\u011fer bir sorun yoksa, &#8220;The dry run was successful.&#8221; mesaj\u0131n\u0131 g\u00f6rmelisiniz.<\/p>\n<h3>Ad\u0131m 6: Nginx SSL Yap\u0131land\u0131rmas\u0131n\u0131n \u0130ncelenmesi ve \u0130yile\u015ftirilmesi<\/h3>\n<p>Certbot, Nginx yap\u0131land\u0131rma dosyan\u0131z\u0131 otomatik olarak g\u00fcnceller. \u015eimdi bu dosyay\u0131 inceleyelim ve g\u00fcvenlik i\u00e7in baz\u0131 ek iyile\u015ftirmeler yapal\u0131m.<\/p>\n<p>Yap\u0131land\u0131rma dosyan\u0131z\u0131 tekrar a\u00e7\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/nginx\/sites-available\/jenkins.alanadiniz.com<\/code><\/pre>\n<p>Certbot&#8217;un ekledi\u011fi de\u011fi\u015fiklikleri g\u00f6receksiniz. Dosya \u015fimdi yakla\u015f\u0131k olarak \u015f\u00f6yle g\u00f6r\u00fcnmelidir:<\/p>\n<pre><code class=\"language-nginx\">server {\n    listen 80;\n    listen [::]:80;\n    server_name jenkins.alanadiniz.com;\n\n    # Certbot'un ekledi\u011fi HTTP'den HTTPS'ye y\u00f6nlendirme\n    return 301 https:\/\/$host$request_uri;\n}\n\nserver {\n    listen 443 ssl;\n    listen [::]:443 ssl;\n    server_name jenkins.alanadiniz.com;\n\n    ssl_certificate \/etc\/letsencrypt\/live\/jenkins.alanadiniz.com\/fullchain.pem;\n    ssl_certificate_key \/etc\/letsencrypt\/live\/jenkins.alanadiniz.com\/privkey.pem;\n\n    # G\u00fcvenlik iyile\u015ftirmeleri\n    ssl_session_cache shared:SSL:10m;\n    ssl_session_timeout 10m;\n    ssl_protocols TLSv1.2 TLSv1.3;\n    ssl_ciphers 'TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384';\n    ssl_prefer_server_ciphers on;\n    ssl_stapling on;\n    ssl_stapling_verify on;\n    resolver 8.8.8.8 8.8.4.4 valid=300s;\n    resolver_timeout 5s;\n\n    # HTTP Strict Transport Security (HSTS) - \u0130ste\u011fe ba\u011fl\u0131 ama \u00f6nerilir\n    add_header Strict-Transport-Security \"max-age=63072000; includeSubDomains; preload\" always;\n\n    location \/ {\n        proxy_pass http:\/\/localhost:8080;\n        proxy_set_header Host $host;\n        proxy_set_header X-Real-IP $remote_addr;\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n        proxy_set_header X-Forwarded-Proto $scheme;\n        proxy_connect_timeout 600;\n        proxy_send_timeout 600;\n        proxy_read_timeout 600;\n        send_timeout 600;\n        proxy_buffering off;\n        proxy_request_buffering off;\n        proxy_set_header X-Jenkins $host;\n        proxy_redirect default;\n    }\n}<\/code><\/pre>\n<p><strong>Eklenen ve \u0130yile\u015ftirilen Ayarlar\u0131n A\u00e7\u0131klamas\u0131:<\/strong><\/p>\n<p>*   <strong>HTTP&#8217;den HTTPS&#8217;ye Y\u00f6nlendirme:<\/strong> Certbot, otomatik olarak 80 portunu dinleyen bir <code>server<\/code> blo\u011fu ekler ve t\u00fcm HTTP isteklerini 301 kal\u0131c\u0131 y\u00f6nlendirmesiyle HTTPS&#8217;e y\u00f6nlendirir (<code>return 301 https:\/\/$host$request_uri;<\/code>). Bu, kullan\u0131c\u0131lar\u0131n her zaman g\u00fcvenli ba\u011flant\u0131 kullanmas\u0131n\u0131 sa\u011flar.<br \/>\n*   <strong><code>listen 443 ssl;<\/code><\/strong>: Nginx&#8217;in 443 (HTTPS) portunu dinlemesini ve SSL kullanmas\u0131n\u0131 belirtir.<br \/>\n*   <strong><code>ssl_certificate<\/code> ve <code>ssl_certificate_key<\/code><\/strong>: Certbot taraf\u0131ndan al\u0131nan SSL sertifikas\u0131n\u0131n ve \u00f6zel anahtar\u0131n\u0131n yollar\u0131n\u0131 belirtir.<br \/>\n*   <strong><code>ssl_session_cache<\/code> ve <code>ssl_session_timeout<\/code><\/strong>: SSL oturum \u00f6nbelle\u011fini yap\u0131land\u0131rarak performans\u0131 art\u0131r\u0131r.<br \/>\n*   <strong><code>ssl_protocols TLSv1.2 TLSv1.3;<\/code><\/strong>: Yaln\u0131zca g\u00fc\u00e7l\u00fc ve modern TLS protokollerinin kullan\u0131lmas\u0131na izin verir. Eski ve zay\u0131f protokolleri (TLSv1.0, TLSv1.1, SSLv3) devre d\u0131\u015f\u0131 b\u0131rak\u0131r.<br \/>\n*   <strong><code>ssl_ciphers<\/code><\/strong>: Yaln\u0131zca g\u00fcvenli \u015fifreleme algoritmalar\u0131n\u0131n kullan\u0131lmas\u0131na izin verir. Bu, man-in-the-middle sald\u0131r\u0131lar\u0131na kar\u015f\u0131 koruma sa\u011flar.<br \/>\n*   <strong><code>ssl_prefer_server_ciphers on;<\/code><\/strong>: Sunucunun kendi \u015fifreleme tercihlerini kullanmas\u0131n\u0131 sa\u011flar.<br \/>\n*   <strong><code>ssl_stapling on;<\/code>, <code>ssl_stapling_verify on;<\/code>, <code>resolver<\/code><\/strong>: OCSP Stapling&#8217;i etkinle\u015ftirir. Bu, taray\u0131c\u0131lar\u0131n sertifikan\u0131n iptal edilip edilmedi\u011fini kontrol etme s\u00fcrecini h\u0131zland\u0131r\u0131r ve gizlili\u011fi art\u0131r\u0131r.<br \/>\n*   <strong><code>add_header Strict-Transport-Security ...<\/code> (HSTS):<\/strong> Bu ba\u015fl\u0131k, taray\u0131c\u0131lara sitenize yaln\u0131zca HTTPS \u00fczerinden ba\u011flanmalar\u0131 gerekti\u011fini s\u00f6yler. Belirtilen s\u00fcre boyunca (\u00f6rne\u011fin 2 y\u0131l), taray\u0131c\u0131 bu siteye yap\u0131lan t\u00fcm HTTP isteklerini otomatik olarak HTTPS&#8217;e d\u00f6n\u00fc\u015ft\u00fcrecektir. Bu, SSL Strip sald\u0131r\u0131lar\u0131na kar\u015f\u0131 ek bir koruma sa\u011flar ve ilk ba\u011flant\u0131daki potansiyel g\u00fcvenlik a\u00e7\u0131\u011f\u0131n\u0131 kapat\u0131r. <code>preload<\/code> direktifi, taray\u0131c\u0131lar\u0131n HSTS listelerine sitenizi eklemesini sa\u011flar.<\/p>\n<p>De\u011fi\u015fiklikleri kaydettikten sonra Nginx yap\u0131land\u0131rmas\u0131n\u0131 tekrar test edin ve servisi yeniden ba\u015flat\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo nginx -t\nsudo systemctl restart nginx<\/code><\/pre>\n<h3>Ad\u0131m 7: Jenkins&#8217;in G\u00fcvenli Eri\u015fimini Do\u011frulama<\/h3>\n<p>\u015eimdi bir web taray\u0131c\u0131s\u0131 a\u00e7\u0131n ve <code>https:\/\/jenkins.alanadiniz.com<\/code> adresine gidin.<\/p>\n<p>*   Taray\u0131c\u0131n\u0131z\u0131n adres \u00e7ubu\u011funda bir kilit simgesi g\u00f6rmelisiniz. Bu, ba\u011flant\u0131n\u0131n g\u00fcvenli oldu\u011fu ve SSL sertifikas\u0131n\u0131n ge\u00e7erli oldu\u011fu anlam\u0131na gelir.<br \/>\n*   Kilit simgesine t\u0131klayarak sertifika detaylar\u0131n\u0131 inceleyebilir ve Let&#8217;s Encrypt taraf\u0131ndan verildi\u011fini do\u011frulayabilirsiniz.<br \/>\n*   Jenkins oturum a\u00e7ma sayfas\u0131n\u0131n HTTPS \u00fczerinden y\u00fcklenmesi, Nginx&#8217;in SSL sonland\u0131rmas\u0131n\u0131 ba\u015far\u0131yla ger\u00e7ekle\u015ftirdi\u011fini ve trafi\u011fi Jenkins&#8217;e g\u00fcvenli bir \u015fekilde y\u00f6nlendirdi\u011fini g\u00f6sterir.<\/p>\n<h3>Ad\u0131m 8: Jenkins G\u00fcvenlik Ayarlar\u0131n\u0131 G\u00f6zden Ge\u00e7irme<\/h3>\n<p>Nginx ve SSL yap\u0131land\u0131rmas\u0131n\u0131 tamamlad\u0131ktan sonra, Jenkins&#8217;in kendi i\u00e7indeki baz\u0131 ayarlar\u0131 da g\u00f6zden ge\u00e7irmek \u00f6nemlidir.<\/p>\n<h4>Jenkins URL&#8217;sini G\u00fcncelleme<\/h4>\n<p>Jenkins&#8217;in baz\u0131 i\u00e7 i\u015flevleri (\u00f6rne\u011fin, webhook&#8217;lar, bildirimler, eklentilerin do\u011fru URL&#8217;ler olu\u015fturmas\u0131) i\u00e7in kendi URL&#8217;sini bilmesi gerekir. Bu URL&#8217;yi HTTPS versiyonuyla g\u00fcncellemeniz \u00f6nemlidir:<\/p>\n<p>1.  Jenkins aray\u00fcz\u00fcne y\u00f6netici olarak giri\u015f yap\u0131n.<br \/>\n2.  Sol men\u00fcden &#8220;Manage Jenkins&#8221; (Jenkins&#8217;i Y\u00f6net) se\u00e7ene\u011fine t\u0131klay\u0131n.<br \/>\n3.  &#8220;System&#8221; (Sistem) veya &#8220;Configure System&#8221; (Sistemi Yap\u0131land\u0131r) se\u00e7ene\u011fine t\u0131klay\u0131n.<br \/>\n4.  &#8220;Jenkins Location&#8221; (Jenkins Konumu) b\u00f6l\u00fcm\u00fcn\u00fc bulun.<br \/>\n5.  &#8220;Jenkins URL&#8221; alan\u0131n\u0131 <code>http:\/\/localhost:8080\/<\/code> veya eski HTTP adresinizden <code>https:\/\/jenkins.alanadiniz.com\/<\/code> olarak de\u011fi\u015ftirin.<br \/>\n6.  De\u011fi\u015fiklikleri kaydetmek i\u00e7in sayfan\u0131n alt\u0131ndaki &#8220;Save&#8221; (Kaydet) d\u00fc\u011fmesine t\u0131klay\u0131n.<\/p>\n<h4>CSRF Korumas\u0131<\/h4>\n<p>Jenkins, varsay\u0131lan olarak \u00c7apraz Site \u0130stek Sahtecili\u011fi (CSRF) korumas\u0131na sahiptir. Bu koruman\u0131n aktif oldu\u011fundan emin olun. &#8220;Manage Jenkins&#8221; -> &#8220;Configure Global Security&#8221; (Genel G\u00fcvenli\u011fi Yap\u0131land\u0131r) b\u00f6l\u00fcm\u00fcnde &#8220;Prevent Cross Site Request Forgery exploits&#8221; (\u00c7apraz Site \u0130stek Sahtecili\u011fi sald\u0131r\u0131lar\u0131n\u0131 \u00f6nle) se\u00e7ene\u011finin i\u015faretli oldu\u011fundan emin olun.<\/p>\n<h4>Kullan\u0131c\u0131 Y\u00f6netimi ve Yetkilendirme<\/h4>\n<p>Jenkins&#8217;inize eri\u015fen kullan\u0131c\u0131lar\u0131 dikkatlice y\u00f6netin. G\u00fc\u00e7l\u00fc parolalar kullan\u0131n, gereksiz kullan\u0131c\u0131lar\u0131 kald\u0131r\u0131n ve her kullan\u0131c\u0131ya yaln\u0131zca ihtiya\u00e7 duydu\u011fu yetkileri verin. Matrix tabanl\u0131 g\u00fcvenlik veya rol tabanl\u0131 stratejiler kullanarak yetkilendirmeyi daha ayr\u0131nt\u0131l\u0131 hale getirebilirsiniz.<\/p>\n<h3>Sorun Giderme<\/h3>\n<p>Kurulum s\u0131ras\u0131nda kar\u015f\u0131la\u015fabilece\u011finiz yayg\u0131n sorunlar ve \u00e7\u00f6z\u00fcmleri:<\/p>\n<p>*   <strong>Taray\u0131c\u0131da &#8220;Siteye ula\u015f\u0131lam\u0131yor&#8221; veya &#8220;Ba\u011flant\u0131 reddedildi&#8221; hatas\u0131:<\/strong><br \/>\n    *   Nginx servisinin \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131 kontrol edin: <code>sudo systemctl status nginx<\/code>.<br \/>\n    *   UFW g\u00fcvenlik duvar\u0131 ayarlar\u0131n\u0131 kontrol edin, 80 ve 443 portlar\u0131n\u0131n a\u00e7\u0131k oldu\u011fundan emin olun: <code>sudo ufw status<\/code>.<br \/>\n    *   DNS kayd\u0131n\u0131z\u0131n do\u011fru IP adresini i\u015faret etti\u011finden emin olun.<br \/>\n*   <strong>Jenkins&#8217;e HTTP \u00fczerinden eri\u015filiyor, ancak HTTPS \u00fczerinden de\u011fil:<\/strong><br \/>\n    *   Certbot&#8217;un sertifikay\u0131 ba\u015far\u0131yla ald\u0131\u011f\u0131ndan emin olun.<br \/>\n    *   Nginx yap\u0131land\u0131rma dosyas\u0131nda (<code>\/etc\/nginx\/sites-available\/jenkins.alanadiniz.com<\/code>) <code>listen 443 ssl<\/code> sat\u0131r\u0131n\u0131n ve <code>ssl_certificate<\/code>\/<code>ssl_certificate_key<\/code> yollar\u0131n\u0131n do\u011fru oldu\u011fundan emin olun.<br \/>\n    *   Nginx&#8217;i yeniden ba\u015flatt\u0131\u011f\u0131n\u0131zdan emin olun: <code>sudo systemctl restart nginx<\/code>.<br \/>\n*   <strong>Nginx yap\u0131land\u0131rma hatas\u0131 (<code>nginx -t<\/code> komutu ba\u015far\u0131s\u0131z oluyor):<\/strong><br \/>\n    *   Yap\u0131land\u0131rma dosyas\u0131ndaki s\u00f6zdizimi hatalar\u0131n\u0131 kontrol edin. \u00d6zellikle noktal\u0131 virg\u00fclleri (<code>;<\/code>) ve s\u00fcsl\u00fc parantezleri (<code>{}<\/code>) dikkatlice inceleyin.<br \/>\n    *   <code>server_name<\/code> de\u011ferinin do\u011fru oldu\u011fundan emin olun.<br \/>\n*   <strong>Jenkins aray\u00fcz\u00fcnde baz\u0131 \u00f6\u011feler bozuk g\u00f6r\u00fcn\u00fcyor veya ba\u011flant\u0131lar HTTP&#8217;ye y\u00f6nlendiriyor:<\/strong><br \/>\n    *   Jenkins&#8217;in kendi i\u00e7indeki &#8220;Jenkins URL&#8221; ayar\u0131n\u0131 <code>https:\/\/jenkins.alanadiniz.com\/<\/code> olarak g\u00fcncelledi\u011finizden emin olun (Ad\u0131m 8).<br \/>\n    *   Nginx yap\u0131land\u0131rmas\u0131ndaki <code>proxy_set_header X-Forwarded-Proto $scheme;<\/code> ve <code>proxy_redirect default;<\/code> ayarlar\u0131n\u0131n do\u011fru oldu\u011fundan emin olun.<br \/>\n*   <strong>Sertifika s\u00fcresi doldu veya ge\u00e7ersiz:<\/strong><br \/>\n    *   Certbot&#8217;un otomatik yenileme i\u015flevinin d\u00fczg\u00fcn \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olun. <code>sudo certbot renew --dry-run<\/code> komutuyla test edin.<br \/>\n    *   Manuel olarak yenilemek i\u00e7in <code>sudo certbot renew<\/code> komutunu kullanabilirsiniz.<br \/>\n*   <strong>G\u00fcnl\u00fckleri Kontrol Etme:<\/strong><br \/>\n    *   Nginx hata g\u00fcnl\u00fckleri: <code>\/var\/log\/nginx\/error.log<\/code><br \/>\n    *   Nginx eri\u015fim g\u00fcnl\u00fckleri: <code>\/var\/log\/nginx\/access.log<\/code><br \/>\n    *   Jenkins g\u00fcnl\u00fckleri: <code>\/var\/log\/jenkins\/jenkins.log<\/code><\/p>\n<p>Bu g\u00fcnl\u00fckler, sorunlar\u0131n k\u00f6k nedenini bulmak i\u00e7in de\u011ferli ipu\u00e7lar\u0131 sa\u011flar.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Bu detayl\u0131 rehberde, Ubuntu 22.04 i\u015fletim sistemi \u00fczerinde Jenkins&#8217;i Nginx ters proxy kullanarak SSL (HTTPS) ile nas\u0131l g\u00fcvenli hale getirece\u011finizi ad\u0131m ad\u0131m \u00f6\u011frendiniz. Jenkins kurulumundan Nginx&#8217;in yap\u0131land\u0131r\u0131lmas\u0131na, Let&#8217;s Encrypt sertifikalar\u0131n\u0131n al\u0131nmas\u0131ndan g\u00fcvenlik iyile\u015ftirmelerine kadar t\u00fcm s\u00fcre\u00e7leri ba\u015far\u0131yla tamamlad\u0131n\u0131z.<\/p>\n<p>Art\u0131k Jenkins sunucunuz, internet \u00fczerinden g\u00fcvenli bir \u015fekilde eri\u015filebilir durumda. Bu yap\u0131land\u0131rma, hem hassas verilerinizin \u015fifrelenmesini sa\u011flayarak g\u00fcvenli\u011fi art\u0131r\u0131r hem de Jenkins&#8217;inize profesyonel ve g\u00fcvenilir bir imaj kazand\u0131r\u0131r. Nginx&#8217;in performans ve esneklik avantajlar\u0131ndan faydalanarak, Jenkins ortam\u0131n\u0131z\u0131 gelecekteki ihtiya\u00e7lara g\u00f6re \u00f6l\u00e7eklendirmek ve daha fazla g\u00fcvenlik \u00f6zelli\u011fi eklemek i\u00e7in sa\u011flam bir temel olu\u015fturdunuz.<\/p>\n<p><strong>Ek G\u00fcvenlik \u00d6nerileri:<\/strong><\/p>\n<p>*   <strong>G\u00fc\u00e7l\u00fc Parolalar ve \u0130ki Fakt\u00f6rl\u00fc Kimlik Do\u011frulama (2FA):<\/strong> Jenkins kullan\u0131c\u0131lar\u0131 i\u00e7in g\u00fc\u00e7l\u00fc parolalar kullan\u0131n ve m\u00fcmk\u00fcnse 2FA&#8217;y\u0131 etkinle\u015ftirin.<br \/>\n*   <strong>IP K\u0131s\u0131tlamalar\u0131:<\/strong> E\u011fer Jenkins&#8217;inize eri\u015fim belirli IP adresleriyle s\u0131n\u0131rl\u0131 olacaksa, Nginx yap\u0131land\u0131rmas\u0131na <code>allow<\/code> ve <code>deny<\/code> direktifleri ekleyerek eri\u015fimi k\u0131s\u0131tlayabilirsiniz.<br \/>\n*   <strong>Jenkins G\u00fcncellemeleri:<\/strong> Jenkins ve eklentilerini d\u00fczenli olarak g\u00fcncelleyerek bilinen g\u00fcvenlik a\u00e7\u0131klar\u0131ndan korunmaya devam edin.<br \/>\n*   <strong>Yedekleme:<\/strong> Jenkins yap\u0131land\u0131rma dosyalar\u0131n\u0131z\u0131, i\u015flerinizi ve eklentilerinizi d\u00fczenli olarak yedekleyin.<br \/>\n*   <strong>\u0130zleme ve Denetleme:<\/strong> Jenkins g\u00fcnl\u00fcklerini ve sunucu kaynaklar\u0131n\u0131 d\u00fczenli olarak izleyin. Anormal aktivite veya performans sorunlar\u0131 i\u00e7in uyar\u0131lar ayarlay\u0131n.<\/p>\n<p>Bu ad\u0131mlar\u0131 izleyerek, Jenkins ortam\u0131n\u0131z\u0131n hem g\u00fcvenli hem de y\u00fcksek performansl\u0131 olmas\u0131n\u0131 sa\u011flayabilirsiniz. G\u00fcvenli bir CI\/CD hatt\u0131, modern yaz\u0131l\u0131m geli\u015ftirme s\u00fcre\u00e7lerinin temel ta\u015f\u0131d\u0131r ve bu rehber size bu yolda \u00f6nemli bir ad\u0131m att\u0131rm\u0131\u015ft\u0131r.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Jenkins&#8217;i Nginx Ters Proxy Kullanarak SSL ile Yap\u0131land\u0131rma (Ubuntu 22.04 \u00dczerinde)\nGiri\u015f\nG\u00fcn\u00fcm\u00fcz\u00fcn h\u0131zla geli\u015fen yaz\u0131l\u0131m geli\u015ftirme d\u00fcn","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1468],"tags":[],"class_list":{"0":"post-37531","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-ubuntu","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Jenkins&#039;i Nginx Ters Proxy Kullanarak SSL ile Yap\u0131land\u0131rma (Ubuntu 22.04 \u00dczerinde) - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/jenkinsi-nginx-ters-proxy-kullanarak-ssl-ile-yapilandirma-ubuntu-22-04-uzerinde\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Jenkins&#039;i Nginx Ters Proxy Kullanarak SSL ile Yap\u0131land\u0131rma (Ubuntu 22.04 \u00dczerinde)\" \/>\n<meta property=\"og:description\" content=\"Jenkins&#039;i Nginx Ters Proxy Kullanarak SSL ile Yap\u0131land\u0131rma (Ubuntu 22.04 \u00dczerinde) Giri\u015f G\u00fcn\u00fcm\u00fcz\u00fcn h\u0131zla geli\u015fen yaz\u0131l\u0131m geli\u015ftirme d\u00fcn\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/jenkinsi-nginx-ters-proxy-kullanarak-ssl-ile-yapilandirma-ubuntu-22-04-uzerinde\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-01-07T19:40:59+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"19 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/jenkinsi-nginx-ters-proxy-kullanarak-ssl-ile-yapilandirma-ubuntu-22-04-uzerinde\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/jenkinsi-nginx-ters-proxy-kullanarak-ssl-ile-yapilandirma-ubuntu-22-04-uzerinde\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Jenkins&#8217;i Nginx Ters Proxy Kullanarak SSL ile Yap\u0131land\u0131rma (Ubuntu 22.04 \u00dczerinde)\",\"datePublished\":\"2026-01-07T19:40:59+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/jenkinsi-nginx-ters-proxy-kullanarak-ssl-ile-yapilandirma-ubuntu-22-04-uzerinde\/\"},\"wordCount\":3055,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Ubuntu\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/jenkinsi-nginx-ters-proxy-kullanarak-ssl-ile-yapilandirma-ubuntu-22-04-uzerinde\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/jenkinsi-nginx-ters-proxy-kullanarak-ssl-ile-yapilandirma-ubuntu-22-04-uzerinde\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/jenkinsi-nginx-ters-proxy-kullanarak-ssl-ile-yapilandirma-ubuntu-22-04-uzerinde\/\",\"name\":\"Jenkins'i Nginx Ters Proxy Kullanarak SSL ile Yap\u0131land\u0131rma (Ubuntu 22.04 \u00dczerinde) - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-01-07T19:40:59+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/jenkinsi-nginx-ters-proxy-kullanarak-ssl-ile-yapilandirma-ubuntu-22-04-uzerinde\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/jenkinsi-nginx-ters-proxy-kullanarak-ssl-ile-yapilandirma-ubuntu-22-04-uzerinde\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/jenkinsi-nginx-ters-proxy-kullanarak-ssl-ile-yapilandirma-ubuntu-22-04-uzerinde\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Jenkins&#8217;i Nginx Ters Proxy Kullanarak SSL ile Yap\u0131land\u0131rma (Ubuntu 22.04 \u00dczerinde)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Jenkins'i Nginx Ters Proxy Kullanarak SSL ile Yap\u0131land\u0131rma (Ubuntu 22.04 \u00dczerinde) - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/jenkinsi-nginx-ters-proxy-kullanarak-ssl-ile-yapilandirma-ubuntu-22-04-uzerinde\/","og_locale":"tr_TR","og_type":"article","og_title":"Jenkins'i Nginx Ters Proxy Kullanarak SSL ile Yap\u0131land\u0131rma (Ubuntu 22.04 \u00dczerinde)","og_description":"Jenkins'i Nginx Ters Proxy Kullanarak SSL ile Yap\u0131land\u0131rma (Ubuntu 22.04 \u00dczerinde) Giri\u015f G\u00fcn\u00fcm\u00fcz\u00fcn h\u0131zla geli\u015fen yaz\u0131l\u0131m geli\u015ftirme d\u00fcn","og_url":"https:\/\/fatihsoysal.com\/blog\/jenkinsi-nginx-ters-proxy-kullanarak-ssl-ile-yapilandirma-ubuntu-22-04-uzerinde\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-01-07T19:40:59+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"19 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/jenkinsi-nginx-ters-proxy-kullanarak-ssl-ile-yapilandirma-ubuntu-22-04-uzerinde\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/jenkinsi-nginx-ters-proxy-kullanarak-ssl-ile-yapilandirma-ubuntu-22-04-uzerinde\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Jenkins&#8217;i Nginx Ters Proxy Kullanarak SSL ile Yap\u0131land\u0131rma (Ubuntu 22.04 \u00dczerinde)","datePublished":"2026-01-07T19:40:59+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/jenkinsi-nginx-ters-proxy-kullanarak-ssl-ile-yapilandirma-ubuntu-22-04-uzerinde\/"},"wordCount":3055,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Ubuntu"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/jenkinsi-nginx-ters-proxy-kullanarak-ssl-ile-yapilandirma-ubuntu-22-04-uzerinde\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/jenkinsi-nginx-ters-proxy-kullanarak-ssl-ile-yapilandirma-ubuntu-22-04-uzerinde\/","url":"https:\/\/fatihsoysal.com\/blog\/jenkinsi-nginx-ters-proxy-kullanarak-ssl-ile-yapilandirma-ubuntu-22-04-uzerinde\/","name":"Jenkins'i Nginx Ters Proxy Kullanarak SSL ile Yap\u0131land\u0131rma (Ubuntu 22.04 \u00dczerinde) - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-01-07T19:40:59+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/jenkinsi-nginx-ters-proxy-kullanarak-ssl-ile-yapilandirma-ubuntu-22-04-uzerinde\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/jenkinsi-nginx-ters-proxy-kullanarak-ssl-ile-yapilandirma-ubuntu-22-04-uzerinde\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/jenkinsi-nginx-ters-proxy-kullanarak-ssl-ile-yapilandirma-ubuntu-22-04-uzerinde\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Jenkins&#8217;i Nginx Ters Proxy Kullanarak SSL ile Yap\u0131land\u0131rma (Ubuntu 22.04 \u00dczerinde)"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37531","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=37531"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37531\/revisions"}],"predecessor-version":[{"id":37532,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37531\/revisions\/37532"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=37531"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=37531"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=37531"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}