{"id":33975,"date":"2025-11-09T13:40:53","date_gmt":"2025-11-09T10:40:53","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=33975"},"modified":"2025-11-09T13:40:53","modified_gmt":"2025-11-09T10:40:53","slug":"ubuntu-16-04-uzerinde-nginx-server-bloklari-ile-lets-encrypt-kurulumu-adim-adim-rehber","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-nginx-server-bloklari-ile-lets-encrypt-kurulumu-adim-adim-rehber\/","title":{"rendered":"Ubuntu 16.04 \u00dczerinde Nginx Server Bloklar\u0131 ile Let&#8217;s Encrypt Kurulumu: Ad\u0131m Ad\u0131m Rehber"},"content":{"rendered":"<p><body><\/p>\n<h2>Ubuntu 16.04 \u00dczerinde Nginx Server Bloklar\u0131 ile Let&#8217;s Encrypt Kurulumu: Ad\u0131m Ad\u0131m Rehber<\/h2>\n<p>Bu kapsaml\u0131 rehberde, Ubuntu 16.04 i\u015fletim sistemi \u00fczerinde \u00e7al\u0131\u015fan Nginx web sunucunuz i\u00e7in Let&#8217;s Encrypt kullanarak \u00fccretsiz SSL\/TLS sertifikalar\u0131 nas\u0131l kuraca\u011f\u0131n\u0131z\u0131 ve yap\u0131land\u0131raca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m \u00f6\u011freneceksiniz. Web sitelerinin g\u00fcvenli\u011fi g\u00fcn\u00fcm\u00fczde her zamankinden daha kritik bir \u00f6neme sahiptir. HTTPS, kullan\u0131c\u0131 verilerini \u015fifreleyerek gizlili\u011fi ve b\u00fct\u00fcnl\u00fc\u011f\u00fc korurken, arama motoru s\u0131ralamalar\u0131nda da avantaj sa\u011flar. Let&#8217;s Encrypt, bu g\u00fcvenli\u011fi herkes i\u00e7in eri\u015filebilir k\u0131lan, \u00fccretsiz, otomatik ve a\u00e7\u0131k bir sertifika yetkilisidir.<\/p>\n<h3>Giri\u015f: Let&#8217;s Encrypt ve Nginx&#8217;in \u00d6nemi<\/h3>\n<p>\u0130nternet \u00fczerindeki bilgi ak\u0131\u015f\u0131n\u0131n b\u00fcy\u00fck bir k\u0131sm\u0131, hassas veriler i\u00e7erebilir. Kredi kart\u0131 bilgileri, ki\u015fisel veriler, \u015fifreler ve daha fazlas\u0131, g\u00fcvenli olmayan ba\u011flant\u0131lar \u00fczerinden aktar\u0131ld\u0131\u011f\u0131nda k\u00f6t\u00fc niyetli ki\u015filer taraf\u0131ndan ele ge\u00e7irilebilir. \u0130\u015fte bu noktada SSL\/TLS sertifikalar\u0131 devreye girer. Bir SSL\/TLS sertifikas\u0131, sunucu ile istemci (web taray\u0131c\u0131s\u0131) aras\u0131ndaki ileti\u015fimi \u015fifreleyerek verilerin g\u00fcvenli bir \u015fekilde aktar\u0131lmas\u0131n\u0131 sa\u011flar. Bu \u015fifreleme, taray\u0131c\u0131n\u0131z\u0131n adres \u00e7ubu\u011funda &#8220;https:\/\/&#8221; ve bir kilit simgesi ile belirtilir.<\/p>\n<p>Geleneksel olarak, SSL\/TLS sertifikalar\u0131 pahal\u0131yd\u0131 ve kurulum s\u00fcre\u00e7leri karma\u015f\u0131k olabiliyordu. Ancak Let&#8217;s Encrypt&#8217;in ortaya \u00e7\u0131k\u0131\u015f\u0131 bu durumu tamamen de\u011fi\u015ftirdi. Internet Security Research Group (ISRG) taraf\u0131ndan geli\u015ftirilen Let&#8217;s Encrypt, herkesin \u00fccretsiz ve otomatik olarak g\u00fcvenilir sertifikalar almas\u0131n\u0131 sa\u011flayan bir sertifika yetkilisidir (CA). Bu, web sitesi sahiplerinin g\u00fcvenlik maliyetlerini d\u00fc\u015f\u00fcr\u00fcrken, internetin genel g\u00fcvenli\u011fini art\u0131rmas\u0131na olanak tan\u0131r.<\/p>\n<p>Nginx ise, performans odakl\u0131, hafif ve g\u00fc\u00e7l\u00fc bir web sunucusu ve ters proxy&#8217;dir. Y\u00fcksek trafikli web sitelerini bar\u0131nd\u0131rma yetene\u011fi, esnek yap\u0131land\u0131rma se\u00e7enekleri ve kaynak verimlili\u011fi nedeniyle d\u00fcnya genelinde en pop\u00fcler web sunucular\u0131ndan biridir. Nginx&#8217;in mod\u00fcler yap\u0131s\u0131, Let&#8217;s Encrypt gibi ara\u00e7larla kolayca entegre edilmesini sa\u011flar. Ubuntu 16.04, uzun d\u00f6nem destekli (LTS) bir i\u015fletim sistemi s\u00fcr\u00fcm\u00fc olup, kararl\u0131l\u0131\u011f\u0131 ve geni\u015f paket deste\u011fi nedeniyle sunucu ortamlar\u0131nda hala yayg\u0131n olarak kullan\u0131lmaktad\u0131r. Bu rehber, bu \u00fc\u00e7 g\u00fc\u00e7l\u00fc bile\u015feni (Ubuntu 16.04, Nginx, Let&#8217;s Encrypt) bir araya getirerek g\u00fcvenli bir web deneyimi sunmay\u0131 ama\u00e7lamaktad\u0131r.<\/p>\n<h3>\u00d6n Ko\u015fullar: Ba\u015flamadan \u00d6nce Bilmeniz Gerekenler<\/h3>\n<p>Kuruluma ba\u015flamadan \u00f6nce, a\u015fa\u011f\u0131daki \u00f6n ko\u015fullar\u0131n yerine getirildi\u011finden emin olmal\u0131s\u0131n\u0131z:<\/p>\n<h4>Ubuntu 16.04 Sunucusu<\/h4>\n<p>Bu rehber Ubuntu 16.04 \u00fczerinde \u00e7al\u0131\u015facak \u015fekilde tasarlanm\u0131\u015ft\u0131r. Sunucunuza SSH eri\u015fiminiz olmal\u0131 ve <code>sudo<\/code> yetkilerine sahip bir kullan\u0131c\u0131 olarak oturum a\u00e7mal\u0131s\u0131n\u0131z.<\/p>\n<h4>Nginx Kurulumu<\/h4>\n<p>Sunucunuzda Nginx&#8217;in kurulu ve \u00e7al\u0131\u015f\u0131r durumda olmas\u0131 gerekmektedir. E\u011fer kurulu de\u011filse, a\u015fa\u011f\u0131daki komutlarla kurabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo apt update\nsudo apt install nginx<\/code><\/pre>\n<p>Kurulumdan sonra Nginx&#8217;in \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131 kontrol etmek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">systemctl status nginx<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131da &#8220;active (running)&#8221; ifadesini g\u00f6rmelisiniz.<\/p>\n<h4>Alan Ad\u0131 ve DNS Ayarlar\u0131<\/h4>\n<p>Let&#8217;s Encrypt sertifikalar\u0131, belirli bir alan ad\u0131 i\u00e7in verilir. Bu nedenle, web sitenizin yay\u0131nlanaca\u011f\u0131 bir alan ad\u0131na (\u00f6rne\u011fin, <code>ornekalanadi.com<\/code>) sahip olman\u0131z ve bu alan ad\u0131n\u0131n DNS kay\u0131tlar\u0131n\u0131n sunucunuzun IP adresini i\u015faret etmesi gerekmektedir. Hem ana alan ad\u0131n\u0131z (\u00f6rne\u011fin, <code>ornekalanadi.com<\/code>) hem de <code>www<\/code> alt alan ad\u0131n\u0131z (\u00f6rne\u011fin, <code>www.ornekalanadi.com<\/code>) i\u00e7in A\/AAAA kay\u0131tlar\u0131n\u0131n sunucunuzun IP adresine y\u00f6nlendirildi\u011finden emin olun. DNS de\u011fi\u015fikliklerinin internet genelinde yay\u0131lmas\u0131 biraz zaman alabilir (genellikle birka\u00e7 dakika ile birka\u00e7 saat aras\u0131).<\/p>\n<h4>G\u00fcvenlik Duvar\u0131 Ayarlar\u0131 (UFW)<\/h4>\n<p>E\u011fer sunucunuzda bir g\u00fcvenlik duvar\u0131 (\u00f6rne\u011fin, UFW &#8211; Uncomplicated Firewall) etkinse, Nginx&#8217;in web trafi\u011fini alabilmesi i\u00e7in HTTP (80) ve HTTPS (443) portlar\u0131n\u0131n a\u00e7\u0131k oldu\u011fundan emin olmal\u0131s\u0131n\u0131z.<\/p>\n<p>Nginx i\u00e7in UFW profillerini listeleyerek ba\u015flay\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo ufw app list<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131da &#8220;Nginx HTTP&#8221;, &#8220;Nginx HTTPS&#8221; ve &#8220;Nginx Full&#8221; gibi se\u00e7enekler g\u00f6rmelisiniz. HTTP ve HTTPS trafi\u011fine izin vermek i\u00e7in &#8220;Nginx Full&#8221; profilini etkinle\u015ftirebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo ufw allow 'Nginx Full'<\/code><\/pre>\n<p>E\u011fer UFW etkin de\u011filse, a\u015fa\u011f\u0131daki komutla etkinle\u015ftirebilirsiniz (SSH ba\u011flant\u0131n\u0131z\u0131n kesilmemesi i\u00e7in \u00f6ncelikle SSH portuna izin verdi\u011finizden emin olun, varsay\u0131lan olarak 22):<\/p>\n<pre><code class=\"language-bash\">sudo ufw allow OpenSSH\nsudo ufw enable<\/code><\/pre>\n<p>G\u00fcvenlik duvar\u0131n\u0131n durumunu kontrol etmek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">sudo ufw status<\/code><\/pre>\n<h3>Nginx Server Blo\u011funun Yap\u0131land\u0131r\u0131lmas\u0131: \u0130lk Ad\u0131m<\/h3>\n<p>Let&#8217;s Encrypt sertifikas\u0131 almadan \u00f6nce, Nginx&#8217;in alan ad\u0131n\u0131z\u0131 do\u011fru bir \u015fekilde bar\u0131nd\u0131rd\u0131\u011f\u0131ndan emin olman\u0131z gerekir. Bu, bir Nginx &#8220;server blo\u011fu&#8221; olu\u015fturarak yap\u0131l\u0131r.<\/p>\n<h4>Yeni Bir Nginx Server Blo\u011fu Olu\u015fturma<\/h4>\n<p>Alan ad\u0131n\u0131z i\u00e7in yeni bir yap\u0131land\u0131rma dosyas\u0131 olu\u015fturun. Bu dosyay\u0131 <code>\/etc\/nginx\/sites-available\/<\/code> dizini alt\u0131nda saklayaca\u011f\u0131z. <code>ornekalanadi.com<\/code> k\u0131sm\u0131n\u0131 kendi alan ad\u0131n\u0131zla de\u011fi\u015ftirin.<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/nginx\/sites-available\/ornekalanadi.com<\/code><\/pre>\n<p>Dosyan\u0131n i\u00e7ine a\u015fa\u011f\u0131daki temel yap\u0131land\u0131rmay\u0131 ekleyin. Bu yap\u0131land\u0131rma, sunucunuzun HTTP (port 80) isteklerini dinlemesini ve web sitenizin dosyalar\u0131n\u0131n nerede oldu\u011funu belirtir.<\/p>\n<pre><code class=\"language-nginx\">server {\n    listen 80;\n    listen [::]:80;\n\n    root \/var\/www\/ornekalanadi.com\/html; # Web sitenizin dosyalar\u0131n\u0131n bulundu\u011fu dizin\n    index index.html index.htm index.nginx-debian.html;\n\n    server_name ornekalanadi.com www.ornekalanadi.com; # Alan adlar\u0131n\u0131z\n\n    location \/ {\n        try_files $uri $uri\/ =404;\n    }\n}<\/code><\/pre>\n<p>*   <code>listen 80;<\/code>: Nginx&#8217;in HTTP istekleri i\u00e7in port 80&#8217;i dinlemesini sa\u011flar.<br \/>\n*   <code>root \/var\/www\/ornekalanadi.com\/html;<\/code>: Web sitenizin k\u00f6k dizinini belirtir. Bu dizini daha sonra olu\u015fturaca\u011f\u0131z.<br \/>\n*   <code>index index.html ...;<\/code>: Varsay\u0131lan dizin dosyalar\u0131n\u0131 belirtir.<br \/>\n*   <code>server_name ornekalanadi.com www.ornekalanadi.com;<\/code>: Bu server blo\u011funun hangi alan adlar\u0131 i\u00e7in ge\u00e7erli oldu\u011funu belirtir. Hem ana alan ad\u0131n\u0131z\u0131 hem de <code>www<\/code> alt alan ad\u0131n\u0131z\u0131 ekledi\u011finizden emin olun.<br \/>\n*   <code>location \/ { ... };<\/code>: \u0130steklerin nas\u0131l i\u015flenece\u011fini tan\u0131mlar. <code>try_files<\/code> y\u00f6nergesi, gelen isteklere kar\u015f\u0131l\u0131k gelen dosyalar\u0131 veya dizinleri arar.<\/p>\n<p>Yap\u0131land\u0131rma dosyas\u0131n\u0131 kaydedip kapat\u0131n (CTRL+X, Y, Enter).<\/p>\n<p>\u015eimdi, yukar\u0131da belirtti\u011fimiz k\u00f6k dizini olu\u015ftural\u0131m ve i\u00e7ine basit bir <code>index.html<\/code> dosyas\u0131 ekleyelim:<\/p>\n<pre><code class=\"language-bash\">sudo mkdir -p \/var\/www\/ornekalanadi.com\/html\nsudo chown -R $USER:$USER \/var\/www\/ornekalanadi.com\/html # Kullan\u0131c\u0131n\u0131za sahiplik verin\nsudo chmod -R 755 \/var\/www\/ornekalanadi.com<\/code><\/pre>\n<p>\u015eimdi bir test HTML dosyas\u0131 olu\u015ftural\u0131m:<\/p>\n<pre><code class=\"language-bash\">nano \/var\/www\/ornekalanadi.com\/html\/index.html<\/code><\/pre>\n<p>\u0130\u00e7ine \u015funlar\u0131 ekleyin:<\/p>\n<pre><code class=\"language-html\"><!DOCTYPE html>\n<html>\n<head>\n    <title>Ho\u015f Geldiniz!<\/title>\n<\/head>\n<body>\n    \n    <p>Bu sayfa ornekalanadi.com alan ad\u0131 i\u00e7in haz\u0131rlanm\u0131\u015ft\u0131r.<\/p>\n<\/body>\n<\/html><\/code><\/pre>\n<h4>Server Blo\u011funu Etkinle\u015ftirme<\/h4>\n<p>Yeni olu\u015fturdu\u011funuz server blo\u011funu etkinle\u015ftirmek i\u00e7in, <code>\/etc\/nginx\/sites-enabled\/<\/code> dizinine sembolik bir ba\u011flant\u0131 (symlink) olu\u015fturman\u0131z gerekir:<\/p>\n<pre><code class=\"language-bash\">sudo ln -s \/etc\/nginx\/sites-available\/ornekalanadi.com \/etc\/nginx\/sites-enabled\/<\/code><\/pre>\n<p>Bu, Nginx&#8217;e bu yap\u0131land\u0131rma dosyas\u0131n\u0131 kullanmas\u0131n\u0131 s\u00f6yler.<\/p>\n<h4>Nginx Yap\u0131land\u0131rmas\u0131n\u0131 Test Etme ve Yeniden Ba\u015flatma<\/h4>\n<p>De\u011fi\u015fiklikleri uygulamadan \u00f6nce Nginx yap\u0131land\u0131rma dosyas\u0131nda herhangi bir s\u00f6zdizimi hatas\u0131 olup olmad\u0131\u011f\u0131n\u0131 kontrol etmek iyi bir uygulamad\u0131r:<\/p>\n<pre><code class=\"language-bash\">sudo nginx -t<\/code><\/pre>\n<p>E\u011fer &#8220;test is successful&#8221; mesaj\u0131n\u0131 g\u00f6r\u00fcrseniz, her \u015fey yolunda demektir. Herhangi bir hata durumunda, hatay\u0131 d\u00fczeltmeniz ve testi tekrarlaman\u0131z gerekir.<\/p>\n<p>Hata yoksa, Nginx hizmetini yeniden ba\u015flatarak yeni yap\u0131land\u0131rmay\u0131 uygulay\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart nginx<\/code><\/pre>\n<p>\u015eimdi web taray\u0131c\u0131n\u0131zdan <code>http:\/\/ornekalanadi.com<\/code> adresine giderek sitenizin \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 do\u011frulay\u0131n. E\u011fer her \u015fey do\u011fruysa, haz\u0131rlad\u0131\u011f\u0131n\u0131z &#8220;Ho\u015f Geldiniz!&#8221; sayfas\u0131n\u0131 g\u00f6rmelisiniz.<\/p>\n<h3>Certbot Kurulumu: Let&#8217;s Encrypt \u0130\u00e7in Temel Ara\u00e7<\/h3>\n<p>Certbot, Let&#8217;s Encrypt sertifikalar\u0131n\u0131 almay\u0131 ve y\u00f6netmeyi otomatikle\u015ftiren bir ara\u00e7t\u0131r. Nginx i\u00e7in \u00f6zel bir eklentisi bulunur ve sertifika alma ve yap\u0131land\u0131rma s\u00fcrecini b\u00fcy\u00fck \u00f6l\u00e7\u00fcde basitle\u015ftirir.<\/p>\n<h4>Certbot Depolar\u0131n\u0131 Ekleme<\/h4>\n<p>Ubuntu 16.04&#8217;\u00fcn varsay\u0131lan depolar\u0131ndaki Certbot s\u00fcr\u00fcm\u00fc g\u00fcncel olmayabilir. En g\u00fcncel Certbot s\u00fcr\u00fcm\u00fcn\u00fc almak i\u00e7in Certbot PPA (Personal Package Archive) deposunu eklememiz gerekir:<\/p>\n<pre><code class=\"language-bash\">sudo apt update\nsudo apt install software-properties-common\nsudo add-apt-repository ppa:certbot\/certbot\nsudo apt update<\/code><\/pre>\n<h4>Certbot Paketini Kurma<\/h4>\n<p>\u015eimdi Certbot&#8217;u Nginx eklentisi ile birlikte kurabiliriz:<\/p>\n<pre><code class=\"language-bash\">sudo apt install python-certbot-nginx<\/code><\/pre>\n<p>Bu komut, Certbot ana paketini ve Nginx ile entegrasyonu sa\u011flayan eklentiyi kuracakt\u0131r.<\/p>\n<h3>SSL Sertifikas\u0131 Alma: Let&#8217;s Encrypt ile G\u00fcvenli Ba\u011flant\u0131<\/h3>\n<p>Certbot&#8217;u kurduktan sonra, web siteniz i\u00e7in SSL sertifikas\u0131 almak art\u0131k \u00e7ok kolay.<\/p>\n<h4>Certbot ile Nginx Eklentisini Kullanma<\/h4>\n<p>Certbot&#8217;un Nginx eklentisi, sertifika alma ve Nginx yap\u0131land\u0131rmas\u0131n\u0131 otomatik olarak g\u00fcncelleme yetene\u011fine sahiptir.<\/p>\n<pre><code class=\"language-bash\">sudo certbot --nginx -d ornekalanadi.com -d www.ornekalanadi.com<\/code><\/pre>\n<p>*   <code>--nginx<\/code>: Nginx eklentisini kullanaca\u011f\u0131n\u0131 belirtir. Bu, Certbot&#8217;un Nginx yap\u0131land\u0131rman\u0131z\u0131 okuyup otomatik olarak de\u011fi\u015ftirmesini sa\u011flar.<br \/>\n*   <code>-d<\/code>: Sertifika almak istedi\u011finiz alan adlar\u0131n\u0131 belirtir. Her alan ad\u0131 i\u00e7in ayr\u0131 bir <code>-d<\/code> parametresi kullan\u0131n.<\/p>\n<p>Komutu \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda, Certbot size birka\u00e7 soru soracakt\u0131r:<\/p>\n<p>1.  <strong>E-posta Adresi:<\/strong> Sertifika bildirimleri ve kay\u0131p anahtar kurtarma i\u00e7in bir e-posta adresi girmeniz istenecektir.<br \/>\n2.  <strong>Hizmet \u015eartlar\u0131:<\/strong> Let&#8217;s Encrypt&#8217;in hizmet \u015fartlar\u0131n\u0131 kabul etmeniz istenecektir. Kabul etmek i\u00e7in &#8216;A&#8217; tu\u015funa bas\u0131n.<br \/>\n3.  <strong>EFF Haber B\u00fclteni:<\/strong> Electronic Frontier Foundation (EFF) haber b\u00fcltenine abone olmak isteyip istemedi\u011finiz sorulacakt\u0131r. Bu iste\u011fe ba\u011fl\u0131d\u0131r, &#8216;Y&#8217; veya &#8216;N&#8217; tu\u015funa basarak se\u00e7iminizi yapabilirsiniz.<br \/>\n4.  <strong>HTTP&#8217;den HTTPS&#8217;ye Y\u00f6nlendirme:<\/strong> Certbot, HTTP trafi\u011fini otomatik olarak HTTPS&#8217;ye y\u00f6nlendirmek isteyip istemedi\u011finizi soracakt\u0131r. <strong>Bu genellikle \u00f6nerilen bir ayard\u0131r.<\/strong> &#8216;2&#8217; se\u00e7ene\u011fini (Redirect) se\u00e7erek t\u00fcm HTTP isteklerinin HTTPS&#8217;ye y\u00f6nlendirilmesini sa\u011flay\u0131n.<\/p>\n<p>Ba\u015far\u0131l\u0131 bir kurulumun ard\u0131ndan, Certbot size sertifikalar\u0131n nerede sakland\u0131\u011f\u0131 ve ne zaman sona erece\u011fi gibi bilgileri i\u00e7eren bir mesaj g\u00f6sterecektir. Ayr\u0131ca, &#8220;Congratulations!&#8221; mesaj\u0131n\u0131 g\u00f6rmelisiniz.<\/p>\n<p>Bu i\u015flem s\u0131ras\u0131nda Certbot, Nginx yap\u0131land\u0131rma dosyan\u0131z\u0131 ( <code>\/etc\/nginx\/sites-available\/ornekalanadi.com<\/code> ) otomatik olarak g\u00fcncelleyecektir. Yeni yap\u0131land\u0131rma genellikle a\u015fa\u011f\u0131daki gibi g\u00f6r\u00fcnecektir (detaylar Certbot s\u00fcr\u00fcm\u00fcne g\u00f6re de\u011fi\u015febilir):<\/p>\n<pre><code class=\"language-nginx\"># ... (\u00f6nceki HTTP server blo\u011fu) ...\nserver {\n    listen 80;\n    listen [::]:80;\n\n    server_name ornekalanadi.com www.ornekalanadi.com;\n\n    # Certbot'un ekledi\u011fi y\u00f6nlendirme\n    return 301 https:\/\/$host$request_uri;\n}\n\nserver {\n    listen 443 ssl http2;\n    listen [::]:443 ssl http2;\n\n    root \/var\/www\/ornekalanadi.com\/html;\n    index index.html index.htm index.nginx-debian.html;\n\n    server_name ornekalanadi.com www.ornekalanadi.com;\n\n    ssl_certificate \/etc\/letsencrypt\/live\/ornekalanadi.com\/fullchain.pem; # Sertifika dosyas\u0131\n    ssl_certificate_key \/etc\/letsencrypt\/live\/ornekalanadi.com\/privkey.pem; # \u00d6zel anahtar dosyas\u0131\n\n    # Certbot'un \u00f6nerdi\u011fi SSL ayarlar\u0131\n    include \/etc\/letsencrypt\/options-ssl-nginx.conf;\n    ssl_dhparam \/etc\/letsencrypt\/ssl-dhparams.pem; # DH parametresi (Certbot olu\u015fturur)\n\n    location \/ {\n        try_files $uri $uri\/ =404;\n    }\n}<\/code><\/pre>\n<p>Certbot, Nginx&#8217;i otomatik olarak yeniden ba\u015flat\u0131r, b\u00f6ylece de\u011fi\u015fiklikler hemen etkili olur. \u015eimdi web taray\u0131c\u0131n\u0131zdan <code>https:\/\/ornekalanadi.com<\/code> adresine giderek sitenizin g\u00fcvenli bir ba\u011flant\u0131 \u00fczerinden \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 do\u011frulayabilirsiniz. Taray\u0131c\u0131n\u0131z\u0131n adres \u00e7ubu\u011funda kilit simgesini ve &#8220;https:\/\/&#8221; ibaresini g\u00f6rmelisiniz.<\/p>\n<h4>Manuel Sertifika Alma (Gerekirse)<\/h4>\n<p>Baz\u0131 durumlarda, Certbot&#8217;un Nginx eklentisi otomatik yap\u0131land\u0131rmay\u0131 yapamayabilir veya siz manuel kontrol\u00fc tercih edebilirsiniz. Bu durumda <code>certonly<\/code> modunu kullanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo certbot certonly --nginx -d ornekalanadi.com -d www.ornekalanadi.com<\/code><\/pre>\n<p>Bu komut sadece sertifikalar\u0131 alacak ve <code>\/etc\/letsencrypt\/live\/ornekalanadi.com\/<\/code> dizinine yerle\u015ftirecektir. Nginx yap\u0131land\u0131rman\u0131z\u0131 manuel olarak d\u00fczenlemeniz gerekecektir. Bu durumda, yukar\u0131daki <code>server<\/code> blo\u011fundaki <code>ssl_certificate<\/code> ve <code>ssl_certificate_key<\/code> y\u00f6nergelerini eklemeniz ve HTTP&#8217;den HTTPS&#8217;ye y\u00f6nlendirmeyi manuel olarak yap\u0131land\u0131rman\u0131z gerekir.<\/p>\n<h4>Birden Fazla Alan Ad\u0131 \u0130\u00e7in Sertifika Alma<\/h4>\n<p>E\u011fer ayn\u0131 sunucu blo\u011funda veya farkl\u0131 sunucu bloklar\u0131nda birden fazla alan ad\u0131n\u0131z varsa, bunlar\u0131 ayn\u0131 Certbot komutuna ekleyebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo certbot --nginx -d alanadi1.com -d www.alanadi1.com -d alanadi2.com -d www.alanadi2.com<\/code><\/pre>\n<p>Certbot, bu alan adlar\u0131n\u0131n her biri i\u00e7in tek bir sertifika olu\u015fturacak ve Nginx yap\u0131land\u0131rmalar\u0131n\u0131 buna g\u00f6re g\u00fcncelleyecektir.<\/p>\n<h3>Nginx Yap\u0131land\u0131rmas\u0131n\u0131n G\u00fcncellenmesi: Sertifikay\u0131 Kullan\u0131ma Sokma<\/h3>\n<p>Certbot&#8217;un otomatik olarak yapt\u0131\u011f\u0131 de\u011fi\u015fiklikleri anlamak ve gerekirse manuel olarak ayarlamalar yapmak \u00f6nemlidir.<\/p>\n<h4>Certbot&#8217;un Otomatik De\u011fi\u015fiklikleri<\/h4>\n<p>Certbot, Nginx yap\u0131land\u0131rma dosyan\u0131za temel olarak iki ana de\u011fi\u015fiklik yapar:<\/p>\n<p>1.  <strong>Yeni bir <code>server<\/code> blo\u011fu olu\u015fturur veya mevcut blo\u011fu g\u00fcnceller:<\/strong> Bu blok, HTTPS (port 443) isteklerini dinler.<br \/>\n2.  <strong>SSL\/TLS y\u00f6nergelerini ekler:<\/strong> <code>ssl_certificate<\/code> ve <code>ssl_certificate_key<\/code> ile sertifika ve \u00f6zel anahtar dosyalar\u0131n\u0131n yollar\u0131n\u0131 belirtir. Ayr\u0131ca, <code>\/etc\/letsencrypt\/options-ssl-nginx.conf<\/code> dosyas\u0131n\u0131 dahil ederek g\u00fcvenli SSL\/TLS ayarlar\u0131n\u0131 (protokoller, \u015fifreler vb.) ve <code>ssl_dhparam<\/code> y\u00f6nergesi ile Diffie-Hellman parametresini (ileri gizlilik i\u00e7in) ekler.<br \/>\n3.  <strong>HTTP&#8217;den HTTPS&#8217;ye y\u00f6nlendirme:<\/strong> Port 80&#8217;i dinleyen <code>server<\/code> blo\u011funa <code>return 301 https:\/\/$host$request_uri;<\/code> y\u00f6nergesini ekleyerek t\u00fcm HTTP isteklerini HTTPS&#8217;ye y\u00f6nlendirir.<\/p>\n<h4>Manuel Kontrol ve Ayarlamalar<\/h4>\n<p>Certbot&#8217;un otomatik olarak olu\u015fturdu\u011fu <code>\/etc\/letsencrypt\/options-ssl-nginx.conf<\/code> dosyas\u0131 genellikle iyi ve g\u00fcvenli varsay\u0131lanlar i\u00e7erir. Ancak, daha fazla g\u00fcvenlik veya performans optimizasyonu i\u00e7in bu ayarlar\u0131 manuel olarak de\u011fi\u015ftirmek isteyebilirsiniz.<\/p>\n<p>\u00d6rne\u011fin, Nginx yap\u0131land\u0131rma dosyan\u0131zdaki <code>server<\/code> blo\u011funa a\u015fa\u011f\u0131daki gibi ek SSL\/TLS ayarlar\u0131 ekleyebilirsiniz (bu ayarlar zaten <code>options-ssl-nginx.conf<\/code> i\u00e7inde olabilir, kontrol etmekte fayda var):<\/p>\n<pre><code class=\"language-nginx\">server {\n    # ... (di\u011fer ayarlar) ...\n\n    ssl_protocols TLSv1.2 TLSv1.3; # G\u00fcvenli TLS protokollerini kullan\n    ssl_prefer_server_ciphers on;\n    ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH'; # G\u00fc\u00e7l\u00fc \u015fifreleri kullan\n    ssl_session_cache shared:SSL:10m;\n    ssl_session_timeout 10m;\n    ssl_session_tickets off;\n    ssl_stapling on;\n    ssl_stapling_verify on;\n    resolver 8.8.8.8 8.8.4.4 valid=300s; # DNS \u00e7\u00f6z\u00fcmleyici\n    resolver_timeout 5s;\n\n    # ...\n}<\/code><\/pre>\n<p>Bu ayarlar, SSL Labs gibi ara\u00e7larla sertifika derecelendirmesini art\u0131rman\u0131za yard\u0131mc\u0131 olabilir.<\/p>\n<h4>HTTP&#8217;den HTTPS&#8217;ye Y\u00f6nlendirme<\/h4>\n<p>Certbot bu y\u00f6nlendirmeyi otomatik olarak yapar, ancak nas\u0131l \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 bilmek \u00f6nemlidir. Port 80&#8217;i dinleyen <code>server<\/code> blo\u011funuzda a\u015fa\u011f\u0131daki sat\u0131r\u0131 bulmal\u0131s\u0131n\u0131z:<\/p>\n<pre><code class=\"language-nginx\">server {\n    listen 80;\n    listen [::]:80;\n    server_name ornekalanadi.com www.ornekalanadi.com;\n    return 301 https:\/\/$host$request_uri;\n}<\/code><\/pre>\n<p>Bu, herhangi bir HTTP iste\u011finin kal\u0131c\u0131 olarak (301 kodu ile) ayn\u0131 URL&#8217;nin HTTPS versiyonuna y\u00f6nlendirilmesini sa\u011flar. Bu, SEO i\u00e7in de \u00f6nemlidir, \u00e7\u00fcnk\u00fc arama motorlar\u0131 web sitenizin tek bir canonical (tercih edilen) URL&#8217;ye sahip olmas\u0131n\u0131 ister.<\/p>\n<p>Herhangi bir manuel de\u011fi\u015fiklik yapt\u0131ktan sonra, Nginx yap\u0131land\u0131rmas\u0131n\u0131 test etmeyi ve yeniden ba\u015flatmay\u0131 unutmay\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo nginx -t\nsudo systemctl restart nginx<\/code><\/pre>\n<h3>SSL Sertifikas\u0131n\u0131n Otomatik Yenilenmesi: S\u00fcrekli G\u00fcvenlik<\/h3>\n<p>Let&#8217;s Encrypt sertifikalar\u0131 90 g\u00fcn ge\u00e7erlidir. Bu, g\u00fcvenlik a\u00e7\u0131s\u0131ndan iyi bir uygulama olsa da, sertifikalar\u0131n d\u00fczenli olarak yenilenmesi gerekti\u011fi anlam\u0131na gelir. Certbot, bu yenileme s\u00fcrecini otomatikle\u015ftirerek b\u00fcy\u00fck kolayl\u0131k sa\u011flar.<\/p>\n<h4>Certbot Yenileme Mekanizmas\u0131<\/h4>\n<p>Certbot&#8217;un y\u00fcklenmesiyle birlikte, sisteminizde otomatik bir yenileme mekanizmas\u0131 kurulur. Bu genellikle bir <code>cron<\/code> i\u015fi veya <code>systemd<\/code> zamanlay\u0131c\u0131s\u0131 arac\u0131l\u0131\u011f\u0131yla yap\u0131l\u0131r. Certbot, sertifikalar\u0131n sona ermesine 30 g\u00fcn kala otomatik olarak yenileme giri\u015fiminde bulunur.<\/p>\n<p>Yenileme i\u015flemini manuel olarak tetiklemek i\u00e7in a\u015fa\u011f\u0131daki komutu kullanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo certbot renew<\/code><\/pre>\n<p>Bu komut, yaln\u0131zca s\u00fcresi dolmak \u00fczere olan veya zaten s\u00fcresi dolmu\u015f sertifikalar\u0131 yeniler. E\u011fer t\u00fcm sertifikalar\u0131n\u0131z\u0131n ge\u00e7erlili\u011fi devam ediyorsa, herhangi bir i\u015flem yapmayacakt\u0131r.<\/p>\n<h4>Yenileme Testi<\/h4>\n<p>Yenileme i\u015fleminin d\u00fczg\u00fcn \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olmak i\u00e7in bir kuru \u00e7al\u0131\u015ft\u0131rma (dry run) yapabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo certbot renew --dry-run<\/code><\/pre>\n<p>Bu komut, ger\u00e7ek bir yenileme yapmadan yenileme s\u00fcrecini sim\u00fcle eder. E\u011fer herhangi bir sorunla kar\u015f\u0131la\u015f\u0131rsan\u0131z, hata mesajlar\u0131n\u0131 g\u00f6receksiniz. &#8220;Cert not due for renewal&#8221; veya &#8220;Congratulations, all renewals succeeded&#8221; gibi mesajlar, yenileme mekanizman\u0131z\u0131n d\u00fczg\u00fcn \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 g\u00f6sterir.<\/p>\n<h4>Cron \u0130\u015flemi ile Otomatik Yenileme<\/h4>\n<p>Ubuntu 16.04&#8217;te Certbot, genellikle <code>\/etc\/cron.d\/certbot<\/code> alt\u0131nda bir cron i\u015fi olu\u015fturur. Bu dosyan\u0131n i\u00e7eri\u011fi a\u015fa\u011f\u0131daki gibi olabilir:<\/p>\n<pre><code class=\"language-\">0 <em>\/12 <\/em> <em> <\/em> root test -x \/usr\/bin\/certbot -a \\! -d \/run\/systemd\/system && perl -e 'sleep int(rand(3600))' && certbot -q renew<\/code><\/pre>\n<p>Bu cron i\u015fi, her 12 saatte bir <code>certbot renew<\/code> komutunu \u00e7al\u0131\u015ft\u0131rmay\u0131 dener. <code>-q<\/code> (quiet) parametresi, yaln\u0131zca hatalar olu\u015ftu\u011funda \u00e7\u0131kt\u0131 verir. <code>perl -e 'sleep int(rand(3600))'<\/code> k\u0131sm\u0131, sunucular\u0131n ayn\u0131 anda yenileme yapmas\u0131n\u0131 \u00f6nlemek i\u00e7in rastgele bir gecikme ekler. Bu sayede Let&#8217;s Encrypt sunucular\u0131na a\u015f\u0131r\u0131 y\u00fck binmesi engellenir.<\/p>\n<p>Bu otomatik yenileme mekanizmas\u0131 sayesinde, sertifikalar\u0131n\u0131z\u0131n s\u00fcresinin dolmas\u0131 konusunda endi\u015felenmenize gerek kalmaz.<\/p>\n<h3>G\u00fcvenli\u011fi Art\u0131rma (\u0130ste\u011fe Ba\u011fl\u0131 ama \u00d6nemli): Ek Ad\u0131mlar<\/h3>\n<p>Let&#8217;s Encrypt sertifikas\u0131n\u0131 kurmak, web sitenizi g\u00fcvence alt\u0131na alman\u0131n harika bir ba\u015flang\u0131c\u0131d\u0131r. Ancak, Nginx SSL yap\u0131land\u0131rman\u0131z\u0131 daha da g\u00fc\u00e7lendirmek i\u00e7in atabilece\u011finiz ek ad\u0131mlar vard\u0131r.<\/p>\n<h4>DH Parametresi Olu\u015fturma<\/h4>\n<p>Diffie-Hellman (DH) parametresi, Perfect Forward Secrecy (PFS) sa\u011flayan anahtar de\u011fi\u015fim algoritmalar\u0131 i\u00e7in kullan\u0131l\u0131r. Bu, gelecekte bir anahtar\u0131n ele ge\u00e7irilmesi durumunda bile eski oturumlar\u0131n \u015fifrelerinin \u00e7\u00f6z\u00fclmesini engeller. Certbot, genellikle kurulum s\u0131ras\u0131nda otomatik olarak bir DH parametresi olu\u015fturur, ancak manuel olarak da olu\u015fturabilirsiniz.<\/p>\n<p>Varsay\u0131lan olarak Certbot, <code>\/etc\/letsencrypt\/ssl-dhparams.pem<\/code> konumunda 2048-bit bir DH parametresi olu\u015fturur. Daha g\u00fc\u00e7l\u00fc bir g\u00fcvenlik i\u00e7in 4096-bit bir parametre olu\u015fturabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo openssl dhparam -out \/etc\/nginx\/ssl\/dhparam.pem 4096<\/code><\/pre>\n<p>Bu komutun \u00e7al\u0131\u015fmas\u0131 biraz zaman alabilir (birka\u00e7 dakika s\u00fcrebilir). Olu\u015fturulduktan sonra, Nginx yap\u0131land\u0131rma dosyan\u0131zda (veya Certbot&#8217;un dahil etti\u011fi <code>options-ssl-nginx.conf<\/code> dosyas\u0131nda) bu dosyay\u0131 kullanmas\u0131n\u0131 sa\u011flamal\u0131s\u0131n\u0131z:<\/p>\n<pre><code class=\"language-nginx\">ssl_dhparam \/etc\/nginx\/ssl\/dhparam.pem;<\/code><\/pre>\n<p>E\u011fer Certbot&#8217;un otomatik olarak olu\u015fturdu\u011fu dosyay\u0131 kullan\u0131yorsan\u0131z, bu ad\u0131m\u0131 atlayabilirsiniz.<\/p>\n<h4>Nginx SSL Yap\u0131land\u0131rmas\u0131n\u0131 G\u00fc\u00e7lendirme (TLS S\u00fcr\u00fcmleri, \u015eifreler)<\/h4>\n<p>Nginx&#8217;in SSL\/TLS yap\u0131land\u0131rmas\u0131, hangi protokollerin (TLSv1.2, TLSv1.3) ve hangi \u015fifreleme algoritmalar\u0131n\u0131n kullan\u0131laca\u011f\u0131n\u0131 belirler. Daha eski ve zay\u0131f protokolleri veya \u015fifreleri devre d\u0131\u015f\u0131 b\u0131rakmak, sitenizin g\u00fcvenli\u011fini art\u0131r\u0131r. Certbot&#8217;un dahil etti\u011fi <code>options-ssl-nginx.conf<\/code> dosyas\u0131 genellikle iyi varsay\u0131lanlar sa\u011flar, ancak bunlar\u0131 g\u00f6zden ge\u00e7irmek ve gerekirse g\u00fcncellemek iyi bir uygulamad\u0131r.<\/p>\n<p><code>\/etc\/letsencrypt\/options-ssl-nginx.conf<\/code> dosyas\u0131n\u0131 inceleyin. Genellikle a\u015fa\u011f\u0131daki gibi sat\u0131rlar i\u00e7erir:<\/p>\n<pre><code class=\"language-nginx\">ssl_protocols TLSv1.2 TLSv1.3;\nssl_ciphers EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH;\nssl_prefer_server_ciphers on;\n<h2>... di\u011fer ayarlar ...<\/code><\/pre>\n<\/h2>\n<p>*   <code>ssl_protocols<\/code>: Sadece TLSv1.2 ve TLSv1.3 gibi modern ve g\u00fcvenli protokolleri kullan\u0131n. TLSv1.0 ve TLSv1.1 gibi eski protokollerden ka\u00e7\u0131n\u0131n.<br \/>\n*   <code>ssl_ciphers<\/code>: G\u00fc\u00e7l\u00fc ve g\u00fcvenli \u015fifre paketlerini tercih edin. Mozilla&#8217;n\u0131n SSL Yap\u0131land\u0131rma \u00dcreticisi (Mozilla SSL Configuration Generator), farkl\u0131 uyumluluk ve g\u00fcvenlik seviyeleri i\u00e7in \u00f6nerilen \u015fifre setleri sunar.<br \/>\n*   <code>ssl_prefer_server_ciphers on;<\/code>: Sunucunun \u015fifre se\u00e7imi konusunda istemciye g\u00f6re \u00f6ncelikli olmas\u0131n\u0131 sa\u011flar.<\/p>\n<p>De\u011fi\u015fiklik yapt\u0131ktan sonra Nginx&#8217;i yeniden ba\u015flatmay\u0131 unutmay\u0131n. SSL Labs&#8217;\u0131n SSL Test arac\u0131n\u0131 kullanarak sitenizin SSL yap\u0131land\u0131rmas\u0131n\u0131n derecelendirmesini kontrol edebilirsiniz.<\/p>\n<h4>HSTS (HTTP Strict Transport Security) Uygulamas\u0131<\/h4>\n<p>HSTS, taray\u0131c\u0131lara web sitenize her zaman HTTPS \u00fczerinden ba\u011flanmalar\u0131n\u0131 s\u00f6yleyen bir g\u00fcvenlik politikas\u0131 mekanizmas\u0131d\u0131r. Bu, kullan\u0131c\u0131lar\u0131n yanl\u0131\u015fl\u0131kla veya k\u00f6t\u00fc niyetli bir sald\u0131r\u0131 sonucu HTTP \u00fczerinden ba\u011flanmas\u0131n\u0131 engeller.<\/p>\n<p>HSTS&#8217;yi etkinle\u015ftirmek i\u00e7in, HTTPS <code>server<\/code> blo\u011funuza a\u015fa\u011f\u0131daki ba\u015fl\u0131\u011f\u0131 ekleyin:<\/p>\n<pre><code class=\"language-nginx\">server {\n    # ...\n\n    add_header Strict-Transport-Security \"max-age=63072000; includeSubDomains; preload\" always;\n\n    # ...\n}<\/code><\/pre>\n<p>*   <code>max-age<\/code>: Taray\u0131c\u0131n\u0131n bu politikay\u0131 ne kadar s\u00fcreyle hat\u0131rlayaca\u011f\u0131n\u0131 saniye cinsinden belirtir (63072000 saniye = 2 y\u0131l).<br \/>\n*   <code>includeSubDomains<\/code>: Politikan\u0131n t\u00fcm alt alan adlar\u0131 i\u00e7in de ge\u00e7erli olmas\u0131n\u0131 sa\u011flar.<br \/>\n*   <code>preload<\/code>: Sitenizin HSTS \u00f6n y\u00fckleme listesine eklenmesine izin verir. Bu, taray\u0131c\u0131lar\u0131n sitenizi daha hi\u00e7 ziyaret etmemi\u015f olsalar bile varsay\u0131lan olarak HTTPS kullanmalar\u0131n\u0131 sa\u011flar. \u00d6n y\u00fckleme listesine ba\u015fvurmak i\u00e7in hstspreload.org adresini ziyaret edebilirsiniz.<\/p>\n<p>HSTS ba\u015fl\u0131\u011f\u0131n\u0131 ekledikten sonra Nginx&#8217;i yeniden ba\u015flat\u0131n. Bu ba\u015fl\u0131k, ilk ziyaret\u00e7iden sonra taray\u0131c\u0131 taraf\u0131ndan \u00f6nbelle\u011fe al\u0131nacak ve sonraki t\u00fcm ziyaretler HTTPS \u00fczerinden yap\u0131lacakt\u0131r.<\/p>\n<h3>S\u0131k Kar\u015f\u0131la\u015f\u0131lan Sorunlar ve \u00c7\u00f6z\u00fcmleri: Hata Ay\u0131klama<\/h3>\n<p>Kurulum s\u00fcrecinde veya sonras\u0131nda baz\u0131 sorunlarla kar\u015f\u0131la\u015fabilirsiniz. \u0130\u015fte s\u0131k\u00e7a rastlanan sorunlar ve olas\u0131 \u00e7\u00f6z\u00fcmleri:<\/p>\n<h4>Nginx Yap\u0131land\u0131rma Hatalar\u0131<\/h4>\n<p>*   <strong>Hata Mesaj\u0131:<\/strong> <code>nginx: [emerg] ... syntax error<\/code> veya <code>nginx: [emerg] ... directive not found<\/code><br \/>\n*   <strong>\u00c7\u00f6z\u00fcm:<\/strong> Nginx yap\u0131land\u0131rma dosyan\u0131zda (genellikle <code>\/etc\/nginx\/sites-available\/ornekalanadi.com<\/code> veya ana <code>nginx.conf<\/code> dosyas\u0131nda) s\u00f6zdizimi hatas\u0131 var demektir. <code>sudo nginx -t<\/code> komutunun \u00e7\u0131kt\u0131s\u0131ndaki sat\u0131r numaras\u0131n\u0131 ve hata mesaj\u0131n\u0131 dikkatlice inceleyin. Eksik noktal\u0131 virg\u00fcl (<code>;<\/code>), yanl\u0131\u015f anahtar kelime veya yanl\u0131\u015f dosya yolu gibi basit hatalar olabilir.<\/p>\n<h4>Certbot Hatalar\u0131<\/h4>\n<p>*   <strong>Hata Mesaj\u0131:<\/strong> <code>Failed to connect to host for DVS challenge<\/code> veya <code>DNS problem: NXDOMAIN<\/code><br \/>\n*   <strong>\u00c7\u00f6z\u00fcm:<\/strong> Bu genellikle DNS ayarlar\u0131n\u0131zla ilgili bir sorundur. Alan ad\u0131n\u0131z\u0131n A\/AAAA kay\u0131tlar\u0131 sunucunuzun IP adresini do\u011fru \u015fekilde i\u015faret etmiyor olabilir veya DNS de\u011fi\u015fiklikleri hen\u00fcz yay\u0131lmam\u0131\u015f olabilir. DNS kay\u0131tlar\u0131n\u0131z\u0131 kontrol edin ve birka\u00e7 dakika bekleyip tekrar deneyin.<br \/>\n*   <strong>Hata Mesaj\u0131:<\/strong> <code>Problem binding to port 80: Could not bind to IPv4 or IPv6<\/code><br \/>\n*   <strong>\u00c7\u00f6z\u00fcm:<\/strong> Ba\u015fka bir uygulaman\u0131n (\u00f6rne\u011fin, Apache veya ba\u015fka bir Nginx \u00f6rne\u011fi) port 80&#8217;i zaten kullan\u0131yor olmas\u0131 muhtemeldir. <code>sudo netstat -tulpn | grep :80<\/code> komutuyla hangi uygulaman\u0131n portu kulland\u0131\u011f\u0131n\u0131 kontrol edebilirsiniz. \u00c7ak\u0131\u015fan uygulamay\u0131 durdurman\u0131z veya yap\u0131land\u0131rmas\u0131n\u0131 de\u011fi\u015ftirmeniz gerekebilir.<br \/>\n*   <strong>Hata Mesaj\u0131:<\/strong> <code>Too many requests for this domain<\/code><br \/>\n*   <strong>\u00c7\u00f6z\u00fcm:<\/strong> Let&#8217;s Encrypt&#8217;in oran limitleri vard\u0131r. Genellikle haftada belirli bir alan ad\u0131 i\u00e7in 5 kez sertifika alma limiti bulunur. Testleriniz i\u00e7in <code>--dry-run<\/code> kullan\u0131n. E\u011fer bu limitlere tak\u0131ld\u0131ysan\u0131z, bir hafta beklemeniz gerekebilir.<\/p>\n<h4>Yenileme Sorunlar\u0131<\/h4>\n<p>*   <strong>Hata Mesaj\u0131:<\/strong> <code>Attempting to renew cert (ornekalanadi.com) from \/etc\/letsencrypt\/renewal\/ornekalanadi.com.conf produced an unexpected error<\/code><br \/>\n*   <strong>\u00c7\u00f6z\u00fcm:<\/strong> Yenileme i\u015flemi s\u0131ras\u0131nda Certbot&#8217;un Nginx yap\u0131land\u0131rman\u0131z\u0131 do\u011frulayamamas\u0131 veya ba\u015fka bir sorunla kar\u015f\u0131la\u015fmas\u0131 anlam\u0131na gelir. Nginx yap\u0131land\u0131rman\u0131z\u0131n hala ge\u00e7erli oldu\u011fundan emin olun (<code>sudo nginx -t<\/code>). G\u00fcvenlik duvar\u0131 ayarlar\u0131n\u0131z\u0131n 80 ve 443 portlar\u0131n\u0131 hala a\u00e7\u0131k tuttu\u011fundan emin olun. Bazen Nginx&#8217;i yeniden ba\u015flatmak veya Certbot&#8217;u g\u00fcncellemek sorunu \u00e7\u00f6zebilir.<\/p>\n<h4>G\u00fcvenlik Duvar\u0131 Sorunlar\u0131<\/h4>\n<p>*   <strong>Web sitesi eri\u015filemiyor veya HTTPS \u00e7al\u0131\u015fm\u0131yor.<\/strong><br \/>\n*   <strong>\u00c7\u00f6z\u00fcm:<\/strong> UFW veya ba\u015fka bir g\u00fcvenlik duvar\u0131n\u0131n 80 (HTTP) ve 443 (HTTPS) portlar\u0131n\u0131 engellemedi\u011finden emin olun. <code>sudo ufw status<\/code> komutuyla kontrol edin ve gerekirse <code>sudo ufw allow 'Nginx Full'<\/code> komutuyla izin verin.<\/p>\n<p>Genel hata ay\u0131klama ipu\u00e7lar\u0131:<\/p>\n<p>*   <strong>Log dosyalar\u0131n\u0131 kontrol edin:<\/strong> Nginx loglar\u0131 (<code>\/var\/log\/nginx\/error.log<\/code>, <code>\/var\/log\/nginx\/access.log<\/code>) ve Certbot loglar\u0131 (<code>\/var\/log\/letsencrypt\/<\/code>) sorunlar\u0131n k\u00f6kenini bulman\u0131za yard\u0131mc\u0131 olabilir.<br \/>\n*   <strong>Nginx&#8217;i yeniden ba\u015flat\u0131n:<\/strong> Herhangi bir yap\u0131land\u0131rma de\u011fi\u015fikli\u011finden sonra Nginx&#8217;i yeniden ba\u015flatmay\u0131 unutmay\u0131n.<br \/>\n*   <strong>Certbot&#8217;u g\u00fcncelleyin:<\/strong> Bazen eski bir Certbot s\u00fcr\u00fcm\u00fc sorunlara neden olabilir. <code>sudo apt update && sudo apt install python-certbot-nginx<\/code> komutuyla g\u00fcncelleyin.<\/p>\n<h3>Sonu\u00e7: G\u00fcvenli Bir Web Sunucusunun \u00d6nemi<\/h3>\n<p>Bu rehber boyunca, Ubuntu 16.04 \u00fczerinde Nginx web sunucunuz i\u00e7in Let&#8217;s Encrypt kullanarak \u00fccretsiz SSL\/TLS sertifikalar\u0131n\u0131 nas\u0131l kuraca\u011f\u0131n\u0131z\u0131 ve yap\u0131land\u0131raca\u011f\u0131n\u0131z\u0131 ayr\u0131nt\u0131l\u0131 olarak ele ald\u0131k. G\u00fcvenli bir web sitesi, kullan\u0131c\u0131lar\u0131n\u0131z\u0131n verilerini koruman\u0131n yan\u0131 s\u0131ra, web sitenizin profesyonelli\u011fini ve g\u00fcvenilirli\u011fini de art\u0131r\u0131r. Arama motorlar\u0131 da HTTPS kullanan sitelere \u00f6ncelik verdi\u011finden, SEO performans\u0131n\u0131z \u00fczerinde de olumlu bir etkisi olacakt\u0131r.<\/p>\n<p>Let&#8217;s Encrypt ve Certbot&#8217;un sundu\u011fu otomasyon sayesinde, SSL\/TLS sertifikalar\u0131 art\u0131k pahal\u0131 ve karma\u015f\u0131k bir y\u00fck olmaktan \u00e7\u0131kt\u0131. D\u00fczenli otomatik yenilemeler, sertifikalar\u0131n\u0131z\u0131n her zaman g\u00fcncel ve ge\u00e7erli kalmas\u0131n\u0131 sa\u011flar. Ek g\u00fcvenlik \u00f6nlemleri (DH parametreleri, g\u00fc\u00e7l\u00fc \u015fifreler, HSTS) ile Nginx yap\u0131land\u0131rman\u0131z\u0131 daha da g\u00fc\u00e7lendirerek, web sitenizi modern g\u00fcvenlik standartlar\u0131na uygun hale getirebilirsiniz.<\/p>\n<p>Unutmay\u0131n, web g\u00fcvenli\u011fi s\u00fcrekli bir s\u00fcre\u00e7tir. Sertifikalar\u0131n\u0131z\u0131 g\u00fcncel tutmak, sunucu yaz\u0131l\u0131mlar\u0131n\u0131z\u0131 (Nginx, Ubuntu) d\u00fczenli olarak yamalamak ve g\u00fcvenlik ayarlar\u0131n\u0131z\u0131 periyodik olarak g\u00f6zden ge\u00e7irmek, web sitenizin ve kullan\u0131c\u0131lar\u0131n\u0131z\u0131n g\u00fcvenli\u011fini sa\u011flamak i\u00e7in kritik \u00f6neme sahiptir. Bu rehberdeki ad\u0131mlar\u0131 takip ederek, g\u00fcvenli ve performansl\u0131 bir web sunucusu ortam\u0131 olu\u015fturmu\u015f oldunuz. Art\u0131k web siteniz HTTPS&#8217;in t\u00fcm avantajlar\u0131ndan yararlanmaya haz\u0131r.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Ubuntu 16.04 \u00dczerinde Nginx Server Bloklar\u0131 ile Let&#8217;s Encrypt Kurulumu: Ad\u0131m Ad\u0131m Rehber\nBu kapsaml\u0131 rehberde, Ubuntu 16.04 i\u015fletim sistemi \u00fcz","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-33975","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>Ubuntu 16.04 \u00dczerinde Nginx Server Bloklar\u0131 ile Let&#039;s Encrypt Kurulumu: Ad\u0131m Ad\u0131m Rehber - 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\/ubuntu-16-04-uzerinde-nginx-server-bloklari-ile-lets-encrypt-kurulumu-adim-adim-rehber\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ubuntu 16.04 \u00dczerinde Nginx Server Bloklar\u0131 ile Let&#039;s Encrypt Kurulumu: Ad\u0131m Ad\u0131m Rehber\" \/>\n<meta property=\"og:description\" content=\"Ubuntu 16.04 \u00dczerinde Nginx Server Bloklar\u0131 ile Let&#039;s Encrypt Kurulumu: Ad\u0131m Ad\u0131m Rehber Bu kapsaml\u0131 rehberde, Ubuntu 16.04 i\u015fletim sistemi \u00fcz\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-nginx-server-bloklari-ile-lets-encrypt-kurulumu-adim-adim-rehber\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-09T10:40:53+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=\"21 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-nginx-server-bloklari-ile-lets-encrypt-kurulumu-adim-adim-rehber\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-nginx-server-bloklari-ile-lets-encrypt-kurulumu-adim-adim-rehber\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Ubuntu 16.04 \u00dczerinde Nginx Server Bloklar\u0131 ile Let&#8217;s Encrypt Kurulumu: Ad\u0131m Ad\u0131m Rehber\",\"datePublished\":\"2025-11-09T10:40:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-nginx-server-bloklari-ile-lets-encrypt-kurulumu-adim-adim-rehber\/\"},\"wordCount\":3504,\"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\/ubuntu-16-04-uzerinde-nginx-server-bloklari-ile-lets-encrypt-kurulumu-adim-adim-rehber\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-nginx-server-bloklari-ile-lets-encrypt-kurulumu-adim-adim-rehber\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-nginx-server-bloklari-ile-lets-encrypt-kurulumu-adim-adim-rehber\/\",\"name\":\"Ubuntu 16.04 \u00dczerinde Nginx Server Bloklar\u0131 ile Let's Encrypt Kurulumu: Ad\u0131m Ad\u0131m Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-11-09T10:40:53+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-nginx-server-bloklari-ile-lets-encrypt-kurulumu-adim-adim-rehber\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-nginx-server-bloklari-ile-lets-encrypt-kurulumu-adim-adim-rehber\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-nginx-server-bloklari-ile-lets-encrypt-kurulumu-adim-adim-rehber\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ubuntu 16.04 \u00dczerinde Nginx Server Bloklar\u0131 ile Let&#8217;s Encrypt Kurulumu: Ad\u0131m Ad\u0131m Rehber\"}]},{\"@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":"Ubuntu 16.04 \u00dczerinde Nginx Server Bloklar\u0131 ile Let's Encrypt Kurulumu: Ad\u0131m Ad\u0131m Rehber - 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\/ubuntu-16-04-uzerinde-nginx-server-bloklari-ile-lets-encrypt-kurulumu-adim-adim-rehber\/","og_locale":"tr_TR","og_type":"article","og_title":"Ubuntu 16.04 \u00dczerinde Nginx Server Bloklar\u0131 ile Let's Encrypt Kurulumu: Ad\u0131m Ad\u0131m Rehber","og_description":"Ubuntu 16.04 \u00dczerinde Nginx Server Bloklar\u0131 ile Let's Encrypt Kurulumu: Ad\u0131m Ad\u0131m Rehber Bu kapsaml\u0131 rehberde, Ubuntu 16.04 i\u015fletim sistemi \u00fcz","og_url":"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-nginx-server-bloklari-ile-lets-encrypt-kurulumu-adim-adim-rehber\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-11-09T10:40:53+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"21 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-nginx-server-bloklari-ile-lets-encrypt-kurulumu-adim-adim-rehber\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-nginx-server-bloklari-ile-lets-encrypt-kurulumu-adim-adim-rehber\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Ubuntu 16.04 \u00dczerinde Nginx Server Bloklar\u0131 ile Let&#8217;s Encrypt Kurulumu: Ad\u0131m Ad\u0131m Rehber","datePublished":"2025-11-09T10:40:53+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-nginx-server-bloklari-ile-lets-encrypt-kurulumu-adim-adim-rehber\/"},"wordCount":3504,"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\/ubuntu-16-04-uzerinde-nginx-server-bloklari-ile-lets-encrypt-kurulumu-adim-adim-rehber\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-nginx-server-bloklari-ile-lets-encrypt-kurulumu-adim-adim-rehber\/","url":"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-nginx-server-bloklari-ile-lets-encrypt-kurulumu-adim-adim-rehber\/","name":"Ubuntu 16.04 \u00dczerinde Nginx Server Bloklar\u0131 ile Let's Encrypt Kurulumu: Ad\u0131m Ad\u0131m Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-11-09T10:40:53+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-nginx-server-bloklari-ile-lets-encrypt-kurulumu-adim-adim-rehber\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-nginx-server-bloklari-ile-lets-encrypt-kurulumu-adim-adim-rehber\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-nginx-server-bloklari-ile-lets-encrypt-kurulumu-adim-adim-rehber\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Ubuntu 16.04 \u00dczerinde Nginx Server Bloklar\u0131 ile Let&#8217;s Encrypt Kurulumu: Ad\u0131m Ad\u0131m Rehber"}]},{"@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\/33975","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=33975"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/33975\/revisions"}],"predecessor-version":[{"id":33976,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/33975\/revisions\/33976"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=33975"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=33975"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=33975"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}