{"id":38167,"date":"2026-01-24T20:40:46","date_gmt":"2026-01-24T17:40:46","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=38167"},"modified":"2026-01-24T20:40:46","modified_gmt":"2026-01-24T17:40:46","slug":"nginxi-lets-encrypt-ile-centos-7-uzerinde-guvenli-hale-getirme-rehberi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/nginxi-lets-encrypt-ile-centos-7-uzerinde-guvenli-hale-getirme-rehberi\/","title":{"rendered":"Nginx&#8217;i Let&#8217;s Encrypt ile CentOS 7 \u00dczerinde G\u00fcvenli Hale Getirme Rehberi"},"content":{"rendered":"<p><body><\/p>\n<h2>Nginx&#8217;i Let&#8217;s Encrypt ile CentOS 7 \u00dczerinde G\u00fcvenli Hale Getirme Rehberi<\/h2>\n<p>Nginx, y\u00fcksek performansl\u0131 ve \u00f6l\u00e7eklenebilir bir web sunucusu olmas\u0131n\u0131n yan\u0131 s\u0131ra, ters proxy, y\u00fck dengeleyici ve HTTP \u00f6nbelle\u011fi olarak da yayg\u0131n olarak kullan\u0131lan g\u00fc\u00e7l\u00fc bir ara\u00e7t\u0131r. G\u00fcn\u00fcm\u00fcz internet d\u00fcnyas\u0131nda, kullan\u0131c\u0131 verilerinin g\u00fcvenli\u011fi ve web sitelerinin b\u00fct\u00fcnl\u00fc\u011f\u00fc, her zamankinden daha kritik bir \u00f6neme sahiptir. Bu ba\u011flamda, web trafi\u011fini \u015fifrelemek i\u00e7in SSL\/TLS sertifikalar\u0131 kullanmak bir zorunluluk haline gelmi\u015ftir. Let&#8217;s Encrypt, \u00fccretsiz, otomatik ve a\u00e7\u0131k bir sertifika yetkilisi (CA) olarak, bu gereksinimi kar\u015f\u0131lamak i\u00e7in m\u00fckemmel bir \u00e7\u00f6z\u00fcm sunar. Bu kapsaml\u0131 rehberde, CentOS 7 i\u015fletim sistemi \u00fczerinde \u00e7al\u0131\u015fan bir Nginx web sunucusunu Let&#8217;s Encrypt sertifikalar\u0131 ile nas\u0131l g\u00fcvenli hale getirece\u011finizi ad\u0131m ad\u0131m \u00f6\u011freneceksiniz.<\/p>\n<h3>Giri\u015f<\/h3>\n<p>\u0130nternet \u00fczerindeki bilgi al\u0131\u015fveri\u015finin b\u00fcy\u00fck bir k\u0131sm\u0131, hassas verileri (parolalar, kredi kart\u0131 bilgileri, ki\u015fisel veriler vb.) i\u00e7erir. Bu verilerin k\u00f6t\u00fc niyetli ki\u015filer taraf\u0131ndan ele ge\u00e7irilmesini engellemek i\u00e7in, taray\u0131c\u0131 ile sunucu aras\u0131ndaki ileti\u015fimin \u015fifrelenmesi gerekmektedir. \u0130\u015fte bu noktada SSL\/TLS devreye girer.<\/p>\n<h4>Neden SSL\/TLS?<\/h4>\n<p>SSL (Secure Sockets Layer) ve onun daha modern ve g\u00fcvenli halefi olan TLS (Transport Layer Security), internet \u00fczerinden g\u00f6nderilen verilerin \u015fifrelenmesini sa\u011flayan kriptografik protokollerdir. Bir web sitesi SSL\/TLS ile g\u00fcvence alt\u0131na al\u0131nd\u0131\u011f\u0131nda, taray\u0131c\u0131 adres \u00e7ubu\u011funda &#8220;https:\/\/&#8221; \u00f6n eki ve bir kilit simgesi g\u00f6r\u00fcn\u00fcr. Bu durum, kullan\u0131c\u0131ya siteye g\u00f6nderdi\u011fi bilgilerin \u00fc\u00e7\u00fcnc\u00fc \u015fah\u0131slar taraf\u0131ndan okunmas\u0131n\u0131n veya de\u011fi\u015ftirilmesinin zor oldu\u011funu g\u00f6sterir. SSL\/TLS kullanmaman\u0131n getirdi\u011fi riskler \u015funlard\u0131r:<\/p>\n<p>*   <strong>Veri H\u0131rs\u0131zl\u0131\u011f\u0131:<\/strong> Kullan\u0131c\u0131 ad\u0131, parola, kredi kart\u0131 numaralar\u0131 gibi hassas veriler, a\u011f \u00fczerinden d\u00fcz metin olarak iletilir ve dinlemeye a\u00e7\u0131k hale gelir.<br \/>\n*   <strong>Veri B\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fcn \u0130hlali:<\/strong> K\u00f6t\u00fc niyetli ki\u015filer, sunucu ile taray\u0131c\u0131 aras\u0131ndaki ileti\u015fimi de\u011fi\u015ftirebilir, zararl\u0131 kodlar enjekte edebilir veya i\u00e7eri\u011fi tahrif edebilir.<br \/>\n*   <strong>G\u00fcven Kayb\u0131:<\/strong> Modern taray\u0131c\u0131lar, SSL\/TLS kullanmayan siteleri &#8220;G\u00fcvenli De\u011fil&#8221; olarak i\u015faretler. Bu durum, kullan\u0131c\u0131lar\u0131n sitenize olan g\u00fcvenini zedeler ve potansiyel ziyaret\u00e7ileri uzakla\u015ft\u0131r\u0131r.<br \/>\n*   <strong>SEO Dezavantaj\u0131:<\/strong> Google gibi arama motorlar\u0131, HTTPS kullanan sitelere arama s\u0131ralamalar\u0131nda \u00f6ncelik vermektedir.<\/p>\n<h4>Neden Let&#8217;s Encrypt?<\/h4>\n<p>Geleneksel SSL\/TLS sertifikalar\u0131 genellikle y\u0131ll\u0131k \u00fccretler gerektirir ve kurulum s\u00fcre\u00e7leri karma\u015f\u0131k olabilir. Let&#8217;s Encrypt, bu engelleri ortadan kald\u0131rarak SSL\/TLS \u015fifrelemesini herkes i\u00e7in eri\u015filebilir hale getirmi\u015ftir. Let&#8217;s Encrypt&#8217;in ba\u015fl\u0131ca avantajlar\u0131 \u015funlard\u0131r:<\/p>\n<p>*   <strong>\u00dccretsiz:<\/strong> Sertifikalar tamamen \u00fccretsizdir.<br \/>\n*   <strong>Otomatik:<\/strong> Certbot gibi ara\u00e7lar sayesinde sertifika alma ve yenileme s\u00fcre\u00e7leri otomatikle\u015ftirilebilir.<br \/>\n*   <strong>A\u00e7\u0131k:<\/strong> A\u00e7\u0131k standartlar \u00fczerine kuruludur ve \u015feffaft\u0131r.<br \/>\n*   <strong>Yayg\u0131n Kabul:<\/strong> T\u00fcm b\u00fcy\u00fck taray\u0131c\u0131lar taraf\u0131ndan tan\u0131n\u0131r ve g\u00fcvenilir bulunur.<\/p>\n<h4>Neden CentOS 7 ve Nginx?<\/h4>\n<p>CentOS 7, kararl\u0131l\u0131\u011f\u0131, g\u00fcvenilirli\u011fi ve geni\u015f topluluk deste\u011fi ile kurumsal d\u00fczeyde sunucular i\u00e7in pop\u00fcler bir Linux da\u011f\u0131t\u0131m\u0131d\u0131r. Nginx ise hafif yap\u0131s\u0131, y\u00fcksek performans\u0131 ve e\u015fzamanl\u0131 ba\u011flant\u0131lar\u0131 etkili bir \u015fekilde y\u00f6netebilme yetene\u011fi sayesinde \u00f6zellikle y\u00fcksek trafikli web siteleri i\u00e7in ideal bir se\u00e7imdir. Bu ikilinin kombinasyonu, g\u00fcvenli ve verimli bir web sunucusu ortam\u0131 olu\u015fturmak i\u00e7in g\u00fc\u00e7l\u00fc bir temel sa\u011flar.<\/p>\n<h3>\u00d6n Gereksinimler<\/h3>\n<p>Ba\u015flamadan \u00f6nce, a\u015fa\u011f\u0131daki \u00f6n gereksinimlerin kar\u015f\u0131land\u0131\u011f\u0131ndan emin olmal\u0131s\u0131n\u0131z:<\/p>\n<h4>Sunucuya Eri\u015fim<\/h4>\n<p>*   CentOS 7 y\u00fckl\u00fc bir sunucuya sahip olmal\u0131s\u0131n\u0131z.<br \/>\n*   SSH arac\u0131l\u0131\u011f\u0131yla sunucuya root veya sudo yetkisine sahip bir kullan\u0131c\u0131 olarak eri\u015febilmelisiniz.<\/p>\n<h4>Alan Ad\u0131 ve DNS Ayarlar\u0131<\/h4>\n<p>*   Nginx ile bar\u0131nd\u0131raca\u011f\u0131n\u0131z bir alan ad\u0131na (\u00f6rn. <code>example.com<\/code>) sahip olmal\u0131s\u0131n\u0131z.<br \/>\n*   Bu alan ad\u0131n\u0131n DNS kay\u0131tlar\u0131 (A kayd\u0131), sunucunuzun genel IP adresini i\u015faret etmelidir. Bu, Let&#8217;s Encrypt&#8217;in alan ad\u0131 sahipli\u011fini do\u011frulayabilmesi i\u00e7in kritik \u00f6neme sahiptir.<br \/>\n*   DNS de\u011fi\u015fikliklerinin internet genelinde yay\u0131lmas\u0131 (propagation) biraz zaman alabilir (birka\u00e7 dakika ile birka\u00e7 saat aras\u0131).<\/p>\n<h4>Sudo Yetkisi<\/h4>\n<p>*   Kurulum ve yap\u0131land\u0131rma ad\u0131mlar\u0131 i\u00e7in <code>sudo<\/code> yetkisine sahip bir kullan\u0131c\u0131 kullanman\u0131z \u00f6nerilir. Bu, root kullan\u0131c\u0131s\u0131 olarak do\u011frudan \u00e7al\u0131\u015fmaktan daha g\u00fcvenlidir.<\/p>\n<h3>Nginx Kurulumu<\/h3>\n<p>CentOS 7&#8217;nin varsay\u0131lan depolar\u0131nda Nginx&#8217;in eski bir s\u00fcr\u00fcm\u00fc bulunabilir. En g\u00fcncel ve stabil s\u00fcr\u00fcm\u00fc kullanmak i\u00e7in Nginx&#8217;in kendi deposunu eklememiz \u00f6nerilir.<\/p>\n<h4>Nginx Deposu Ekleme<\/h4>\n<p>\u00d6ncelikle, Nginx deposunu sistemimize eklemek i\u00e7in bir <code>.repo<\/code> dosyas\u0131 olu\u015fturmal\u0131y\u0131z:<\/p>\n<pre><code class=\"language-bash\">sudo yum install -y epel-release # Nginx deposu i\u00e7in gerekli olabilir, ancak \u00e7o\u011fu zaman zaten kurulu\nsudo nano \/etc\/yum.repos.d\/nginx.repo<\/code><\/pre>\n<p>A\u00e7\u0131lan dosyaya a\u015fa\u011f\u0131daki i\u00e7eri\u011fi yap\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-\">[nginx]\nname=nginx repo\nbaseurl=http:\/\/nginx.org\/packages\/centos\/7\/$basearch\/\ngpgcheck=0\nenabled=1<\/code><\/pre>\n<p>Kaydedip dosyay\u0131 kapat\u0131n (Ctrl+X, Y, Enter).<\/p>\n<h4>Nginx Kurulumu ve Ba\u015flatma<\/h4>\n<p>Depo eklendikten sonra Nginx&#8217;i kurabiliriz:<\/p>\n<pre><code class=\"language-bash\">sudo yum install -y nginx<\/code><\/pre>\n<p>Kurulum tamamland\u0131ktan sonra Nginx servisini ba\u015flat\u0131n ve sistem ba\u015flang\u0131c\u0131nda otomatik olarak ba\u015flamas\u0131 i\u00e7in etkinle\u015ftirin:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl start nginx\nsudo systemctl enable nginx<\/code><\/pre>\n<h4>Nginx Durumunu Kontrol Etme<\/h4>\n<p>Nginx&#8217;in do\u011fru bir \u015fekilde \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131 kontrol etmek i\u00e7in a\u015fa\u011f\u0131daki komutu kullan\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl status nginx<\/code><\/pre>\n<p>Durumun <code>active (running)<\/code> oldu\u011funu g\u00f6rmelisiniz. Ayr\u0131ca, web taray\u0131c\u0131n\u0131zdan sunucunuzun IP adresine veya alan ad\u0131na giderek varsay\u0131lan Nginx kar\u015f\u0131lama sayfas\u0131n\u0131 g\u00f6rebilirsiniz.<\/p>\n<h3>Firewall Ayarlar\u0131<\/h3>\n<p>CentOS 7, varsay\u0131lan olarak <code>firewalld<\/code> ile gelir. Nginx&#8217;in gelen HTTP (80) ve HTTPS (443) isteklerini kabul edebilmesi i\u00e7in bu portlar\u0131 g\u00fcvenlik duvar\u0131nda a\u00e7mam\u0131z gerekir.<\/p>\n<h4>HTTP ve HTTPS Portlar\u0131n\u0131 A\u00e7ma<\/h4>\n<pre><code class=\"language-bash\">sudo firewall-cmd --permanent --add-service=http\nsudo firewall-cmd --permanent --add-service=https\nsudo firewall-cmd --reload<\/code><\/pre>\n<p>Bu komutlar, HTTP (port 80) ve HTTPS (port 443) servislerine kal\u0131c\u0131 olarak izin verir ve g\u00fcvenlik duvar\u0131 ayarlar\u0131n\u0131 yeniden y\u00fckler.<\/p>\n<h3>EPEL Deposu ve Certbot Kurulumu<\/h3>\n<p>Let&#8217;s Encrypt sertifikalar\u0131n\u0131 almak ve y\u00f6netmek i\u00e7in Certbot arac\u0131n\u0131 kullanaca\u011f\u0131z. Certbot, CentOS 7&#8217;nin varsay\u0131lan depolar\u0131nda bulunmaz, bu y\u00fczden onu EPEL (Extra Packages for Enterprise Linux) deposundan kurmam\u0131z gerekiyor.<\/p>\n<h4>EPEL Deposu Kurulumu<\/h4>\n<pre><code class=\"language-bash\">sudo yum install -y epel-release<\/code><\/pre>\n<h4>Certbot Kurulumu<\/h4>\n<p>EPEL deposu eklendikten sonra Certbot&#8217;u kurabiliriz. Nginx ile entegre \u00e7al\u0131\u015facak Certbot eklentisini de kurmak \u00f6nemlidir.<\/p>\n<pre><code class=\"language-bash\">sudo yum install -y certbot python2-certbot-nginx<\/code><\/pre>\n<p><code>python2-certbot-nginx<\/code> paketi, Certbot&#8217;un Nginx yap\u0131land\u0131rmas\u0131n\u0131 otomatik olarak d\u00fczenlemesine olanak tan\u0131r.<\/p>\n<h3>SSL Sertifikas\u0131 Alma<\/h3>\n<p>Art\u0131k Nginx \u00e7al\u0131\u015f\u0131r durumda ve Certbot y\u00fckl\u00fc oldu\u011funa g\u00f6re, alan ad\u0131m\u0131z i\u00e7in bir SSL sertifikas\u0131 alabiliriz.<\/p>\n<h4>Nginx i\u00e7in Certbot Kullan\u0131m\u0131<\/h4>\n<p>Certbot, Nginx yap\u0131land\u0131rman\u0131z\u0131 otomatik olarak alg\u0131lay\u0131p d\u00fczenleyebilir. Bu, sertifika alma ve kurma i\u015flemini olduk\u00e7a basitle\u015ftirir.<\/p>\n<pre><code class=\"language-bash\">sudo certbot --nginx -d example.com -d www.example.com<\/code><\/pre>\n<p>*   <code>--nginx<\/code>: Certbot&#8217;a Nginx eklentisini kullanmas\u0131n\u0131 s\u00f6yler.<br \/>\n*   <code>-d example.com<\/code>: Sertifika almak istedi\u011finiz birincil alan ad\u0131n\u0131 belirtir.<br \/>\n*   <code>-d www.example.com<\/code>: Sertifikaya dahil etmek istedi\u011finiz di\u011fer alan adlar\u0131n\u0131 (\u00f6rne\u011fin <code>www<\/code> alt alan ad\u0131n\u0131) belirtir. Birden fazla alan ad\u0131 ekleyebilirsiniz.<\/p>\n<p>Bu komutu \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda, Certbot sizden baz\u0131 bilgiler isteyecektir:<\/p>\n<p>1.  <strong>E-posta Adresi:<\/strong> Acil bildirimler ve kay\u0131p anahtar kurtarma i\u00e7in kullan\u0131l\u0131r.<br \/>\n2.  <strong>Hizmet \u015eartlar\u0131n\u0131 Kabul Etme:<\/strong> Let&#8217;s Encrypt&#8217;in hizmet \u015fartlar\u0131n\u0131 kabul etmeniz gerekir.<br \/>\n3.  <strong>EFF (Electronic Frontier Foundation) Haber B\u00fcltenine Kaydolma:<\/strong> \u0130ste\u011fe ba\u011fl\u0131d\u0131r.<\/p>\n<p>Certbot, alan ad\u0131 sahipli\u011fini do\u011frulamak i\u00e7in Nginx yap\u0131land\u0131rman\u0131z\u0131 ge\u00e7ici olarak de\u011fi\u015ftirecek, sertifikalar\u0131 alacak ve ard\u0131ndan Nginx yap\u0131land\u0131rman\u0131z\u0131 HTTPS&#8217;ye y\u00f6nlendirme ve sertifikalar\u0131 kullanacak \u015fekilde g\u00fcncelleyecektir. \u0130\u015flem ba\u015far\u0131yla tamamland\u0131\u011f\u0131nda, Certbot size sertifikalar\u0131n nerede sakland\u0131\u011f\u0131n\u0131 ve otomatik yenileme ile ilgili bilgileri g\u00f6sterecektir.<\/p>\n<p>Ba\u015far\u0131l\u0131 bir kurulumun ard\u0131ndan, taray\u0131c\u0131n\u0131zdan <code>https:\/\/example.com<\/code> adresine giderek sitenizin g\u00fcvenli bir ba\u011flant\u0131 \u00fczerinden \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 kontrol edebilirsiniz. Taray\u0131c\u0131 adres \u00e7ubu\u011funda kilit simgesini g\u00f6rmelisiniz.<\/p>\n<h4>Sertifika Dosyalar\u0131n\u0131n Konumu<\/h4>\n<p>Certbot taraf\u0131ndan al\u0131nan sertifika dosyalar\u0131 genellikle <code>\/etc\/letsencrypt\/live\/example.com\/<\/code> dizininde saklan\u0131r. Bu dizin i\u00e7inde a\u015fa\u011f\u0131daki \u00f6nemli dosyalar\u0131 bulacaks\u0131n\u0131z:<\/p>\n<p>*   <code>fullchain.pem<\/code>: Alan ad\u0131n\u0131z\u0131n sertifikas\u0131n\u0131 ve ara sertifikalar\u0131 (chain) i\u00e7erir. Nginx yap\u0131land\u0131rmas\u0131nda bu dosyay\u0131 kullanaca\u011f\u0131z.<br \/>\n*   <code>privkey.pem<\/code>: Alan ad\u0131n\u0131z\u0131n \u00f6zel anahtar\u0131n\u0131 i\u00e7erir. Bu dosya gizli tutulmal\u0131d\u0131r.<br \/>\n*   <code>cert.pem<\/code>: Yaln\u0131zca alan ad\u0131n\u0131z\u0131n sertifikas\u0131n\u0131 i\u00e7erir.<br \/>\n*   <code>chain.pem<\/code>: Yaln\u0131zca ara sertifikalar\u0131 i\u00e7erir.<\/p>\n<p><strong>\u00d6nemli:<\/strong> <code>\/etc\/letsencrypt\/live\/example.com\/<\/code> dizinindeki dosyalar asl\u0131nda <code>\/etc\/letsencrypt\/archive\/example.com\/<\/code> dizinindeki ger\u00e7ek sertifika dosyalar\u0131na sembolik ba\u011flant\u0131lard\u0131r. Bu, Certbot&#8217;un sertifikalar\u0131 yeniledi\u011finde sembolik ba\u011flant\u0131lar\u0131 g\u00fcncelleyerek Nginx yap\u0131land\u0131rmas\u0131n\u0131 de\u011fi\u015ftirmeye gerek kalmamas\u0131n\u0131 sa\u011flar.<\/p>\n<h3>Nginx Yap\u0131land\u0131rmas\u0131<\/h3>\n<p>Certbot genellikle Nginx yap\u0131land\u0131rmas\u0131n\u0131 otomatik olarak g\u00fcncellese de, bazen manuel kontrol ve ek g\u00fcvenlik iyile\u015ftirmeleri yapmak isteyebilirsiniz. Varsay\u0131lan Nginx yap\u0131land\u0131rma dosyas\u0131 <code>\/etc\/nginx\/nginx.conf<\/code> veya <code>\/etc\/nginx\/conf.d\/default.conf<\/code> olabilir. En iyi uygulama, her alan ad\u0131 i\u00e7in ayr\u0131 bir yap\u0131land\u0131rma dosyas\u0131 olu\u015fturmakt\u0131r.<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/nginx\/conf.d\/example.com.conf<\/code><\/pre>\n<p>Bu dosyan\u0131n i\u00e7eri\u011fi a\u015fa\u011f\u0131daki gibi olmal\u0131d\u0131r:<\/p>\n<pre><code class=\"language-nginx\">server {\n    listen 80;\n    listen [::]:80;\n    server_name example.com www.example.com;\n\n    # HTTP'den HTTPS'ye y\u00f6nlendirme\n    return 301 https:\/\/$host$request_uri;\n}\n\nserver {\n    listen 443 ssl http2;\n    listen [::]:443 ssl http2;\n    server_name example.com www.example.com;\n\n    # SSL Sertifika Yollar\u0131\n    ssl_certificate \/etc\/letsencrypt\/live\/example.com\/fullchain.pem;\n    ssl_certificate_key \/etc\/letsencrypt\/live\/example.com\/privkey.pem;\n\n    # G\u00fcvenlik \u0130yile\u015ftirmeleri (a\u015fa\u011f\u0131daki b\u00f6l\u00fcmde detayland\u0131r\u0131lacak)\n    ssl_session_timeout 1d;\n    ssl_session_cache shared:SSL:10m;\n    ssl_session_tickets off;\n\n    # SSL Protokolleri ve \u015eifreleme S\u00fcitleri\n    ssl_protocols TLSv1.2 TLSv1.3;\n    ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384';\n    ssl_prefer_server_ciphers on;\n\n    # HSTS (HTTP Strict Transport Security)\n    add_header Strict-Transport-Security \"max-age=63072000; includeSubDomains; preload\" always;\n\n    # OCSP Stapling\n    ssl_stapling on;\n    ssl_stapling_verify on;\n    resolver 8.8.8.8 8.8.4.4 valid=300s; # Google DNS sunucular\u0131\n    resolver_timeout 5s;\n\n    # Diffie-Hellman parametreleri\n    ssl_dhparam \/etc\/nginx\/dhparam.pem; # Bu dosyay\u0131 daha sonra olu\u015fturaca\u011f\u0131z\n\n    root \/usr\/share\/nginx\/html; # Web sitenizin k\u00f6k dizini\n    index index.html index.htm;\n\n    location \/ {\n        try_files $uri $uri\/ =404;\n    }\n\n    # Certbot'un do\u011frulama dosyalar\u0131 i\u00e7in\n    location ~ \/.well-known\/acme-challenge {\n        allow all;\n        root \/usr\/share\/nginx\/html; # Bu dizin, Certbot'un do\u011frulama dosyalar\u0131n\u0131 yerle\u015ftirdi\u011fi yer olmal\u0131d\u0131r.\n    }\n}<\/code><\/pre>\n<p>Bu yap\u0131land\u0131rma dosyas\u0131n\u0131 kaydettikten sonra, Nginx yap\u0131land\u0131rmas\u0131n\u0131n s\u00f6zdizimini kontrol edin ve servisi yeniden y\u00fckleyin:<\/p>\n<pre><code class=\"language-bash\">sudo nginx -t\nsudo systemctl reload nginx<\/code><\/pre>\n<h4>HTTP&#8217;den HTTPS&#8217;ye Y\u00f6nlendirme<\/h4>\n<p>Yukar\u0131daki yap\u0131land\u0131rmada, ilk <code>server<\/code> blo\u011fu HTTP (port 80) \u00fczerinden gelen t\u00fcm istekleri HTTPS (port 443) \u00fczerine y\u00f6nlendirir. Bu, kullan\u0131c\u0131lar\u0131n sitenize yanl\u0131\u015fl\u0131kla HTTP \u00fczerinden eri\u015fmeye \u00e7al\u0131\u015fsalar bile her zaman g\u00fcvenli ba\u011flant\u0131 kullanmalar\u0131n\u0131 sa\u011flar. <code>return 301<\/code> kal\u0131c\u0131 bir y\u00f6nlendirme olup, arama motorlar\u0131 i\u00e7in de \u00f6nemlidir.<\/p>\n<h4>SSL Blok Ayarlar\u0131<\/h4>\n<p><code>server<\/code> blo\u011fundaki <code>listen 443 ssl http2;<\/code> sat\u0131r\u0131, Nginx&#8217;in 443 portunda HTTPS ve HTTP\/2 protokolleri \u00fczerinden dinlemesini sa\u011flar. <code>ssl_certificate<\/code> ve <code>ssl_certificate_key<\/code> direktifleri, Certbot taraf\u0131ndan sa\u011flanan sertifika ve \u00f6zel anahtar dosyalar\u0131n\u0131n yollar\u0131n\u0131 belirtir.<\/p>\n<h4>Sanalla\u015ft\u0131r\u0131lm\u0131\u015f Hostlar \u0130\u00e7in Yap\u0131land\u0131rma<\/h4>\n<p>E\u011fer ayn\u0131 Nginx sunucusunda birden fazla alan ad\u0131 bar\u0131nd\u0131r\u0131yorsan\u0131z (virtual hosts), her alan ad\u0131 i\u00e7in ayr\u0131 bir <code>.conf<\/code> dosyas\u0131 olu\u015fturman\u0131z ve her birine kendi Let&#8217;s Encrypt sertifikalar\u0131n\u0131 uygulaman\u0131z gerekir. Certbot&#8217;u her alan ad\u0131 i\u00e7in ayr\u0131 ayr\u0131 veya tek bir komutla birden fazla alan ad\u0131 i\u00e7in \u00e7al\u0131\u015ft\u0131rabilirsiniz.<\/p>\n<p>\u00d6rne\u011fin, <code>sudo certbot --nginx -d site1.com -d www.site1.com -d site2.com -d www.site2.com<\/code> komutu ile tek bir sertifika i\u00e7inde birden fazla alan ad\u0131 tan\u0131mlayabilirsiniz. Nginx yap\u0131land\u0131rman\u0131zda ise her <code>server_name<\/code> i\u00e7in ilgili sertifika yolunu belirtmeniz yeterlidir.<\/p>\n<h4>HSTS Yap\u0131land\u0131rmas\u0131<\/h4>\n<p>HTTP Strict Transport Security (HSTS), taray\u0131c\u0131lara, bir siteye gelecekteki t\u00fcm eri\u015fimlerin yaln\u0131zca HTTPS \u00fczerinden yap\u0131lmas\u0131 gerekti\u011fini bildiren bir g\u00fcvenlik mekanizmas\u0131d\u0131r. Bu, SSL Strip gibi sald\u0131r\u0131lara kar\u015f\u0131 koruma sa\u011flar.<\/p>\n<pre><code class=\"language-nginx\">add_header Strict-Transport-Security \"max-age=63072000; includeSubDomains; preload\" always;<\/code><\/pre>\n<p>*   <code>max-age<\/code>: Taray\u0131c\u0131n\u0131n bu kural\u0131 ne kadar s\u00fcreyle hat\u0131rlayaca\u011f\u0131n\u0131 saniye cinsinden belirtir (iki y\u0131l i\u00e7in 63072000 saniye).<br \/>\n*   <code>includeSubDomains<\/code>: Kural\u0131n t\u00fcm alt alan adlar\u0131 i\u00e7in de ge\u00e7erli olmas\u0131n\u0131 sa\u011flar.<br \/>\n*   <code>preload<\/code>: Sitenizi HSTS preload listesine eklemek isterseniz bu anahtar kelimeyi kullan\u0131rs\u0131n\u0131z. Bu, taray\u0131c\u0131lar\u0131n sitenize ilk kez bile olsa her zaman HTTPS ile ba\u011flanmas\u0131n\u0131 sa\u011flar. Ancak, <code>preload<\/code> kullanmadan \u00f6nce t\u00fcm alt alan adlar\u0131n\u0131z\u0131n HTTPS \u00fczerinden eri\u015filebilir oldu\u011fundan emin olmal\u0131s\u0131n\u0131z, aksi takdirde siteniz eri\u015filemez hale gelebilir.<\/p>\n<h3>Sertifika Otomatik Yenileme<\/h3>\n<p>Let&#8217;s Encrypt sertifikalar\u0131 90 g\u00fcn ge\u00e7erlidir. Bu s\u00fcre dolmadan sertifikalar\u0131n otomatik olarak yenilenmesi gerekir. Certbot, bu i\u015flemi kolayla\u015ft\u0131ran bir <code>renew<\/code> komutuna sahiptir.<\/p>\n<h4>Yenileme Testi<\/h4>\n<p>Sertifika yenileme i\u015fleminin d\u00fczg\u00fcn \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131 test etmek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">sudo certbot renew --dry-run<\/code><\/pre>\n<p>Bu komut, sertifikalar\u0131 yenilemez, ancak yenileme i\u015fleminin ba\u015far\u0131l\u0131 olup olmayaca\u011f\u0131n\u0131 kontrol eder ve olas\u0131 sorunlar\u0131 size bildirir. E\u011fer test ba\u015far\u0131l\u0131 olursa, ger\u00e7ek yenileme i\u015flemi de sorunsuz \u00e7al\u0131\u015facakt\u0131r.<\/p>\n<h4>Cron Job ile Otomatik Yenileme<\/h4>\n<p>Sertifikalar\u0131 otomatik olarak yenilemek i\u00e7in bir cron job olu\u015fturmak en yayg\u0131n y\u00f6ntemdir. Certbot, zaten sisteminize bir cron job veya systemd zamanlay\u0131c\u0131 eklemi\u015f olabilir. Bunu kontrol etmek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">ls -l \/etc\/cron.d\/certbot<\/code><\/pre>\n<p>veya systemd i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl list-timers | grep certbot<\/code><\/pre>\n<p>E\u011fer bir cron job veya systemd zamanlay\u0131c\u0131s\u0131 yoksa, kendiniz olu\u015fturabilirsiniz. Certbot, sertifikalar\u0131 g\u00fcnde iki kez kontrol eden ve s\u00fcresi dolmak \u00fczere olanlar\u0131 yenileyen bir cron job ile gelmelidir. Varsay\u0131lan olarak, Certbot genellikle <code>\/etc\/cron.d\/certbot<\/code> alt\u0131na bir cron dosyas\u0131 ekler. Bu dosya a\u015fa\u011f\u0131daki gibi bir komut i\u00e7erecektir:<\/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 --nginx<\/code><\/pre>\n<p>Bu komut, her 12 saatte bir rastgele bir zaman diliminde <code>certbot renew<\/code> komutunu \u00e7al\u0131\u015ft\u0131r\u0131r.<\/p>\n<p>E\u011fer Certbot otomatik olarak bir cron job eklemediyse veya \u00f6zelle\u015ftirmek isterseniz, kendiniz bir cron job olu\u015fturabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo crontab -e<\/code><\/pre>\n<p>A\u00e7\u0131lan dosyaya a\u015fa\u011f\u0131daki sat\u0131r\u0131 ekleyin:<\/p>\n<pre><code class=\"language-\">0 0,12 <em> <\/em> * \/usr\/bin\/certbot renew --nginx --quiet && systemctl reload nginx<\/code><\/pre>\n<p>Bu komut, her g\u00fcn gece yar\u0131s\u0131 ve \u00f6\u011flen 12&#8217;de sertifikalar\u0131 yenilemeye \u00e7al\u0131\u015f\u0131r (<code>--quiet<\/code> \u00e7\u0131kt\u0131y\u0131 bast\u0131r\u0131r). E\u011fer yenileme ba\u015far\u0131l\u0131 olursa, Nginx servisini yeniden y\u00fckler (<code>systemctl reload nginx<\/code>) b\u00f6ylece yeni sertifikalar devreye girer.<\/p>\n<p><strong>\u00d6nemli:<\/strong> <code>systemctl reload nginx<\/code> komutunu eklemek \u00e7ok \u00f6nemlidir. Aksi takdirde, sertifikalar yenilense bile Nginx eski sertifikalar\u0131 kullanmaya devam edebilir.<\/p>\n<h3>G\u00fcvenlik \u0130yile\u015ftirmeleri<\/h3>\n<p>SSL\/TLS sertifikalar\u0131n\u0131 kullanmak tek ba\u015f\u0131na yeterli de\u011fildir. Nginx yap\u0131land\u0131rman\u0131zda baz\u0131 ek g\u00fcvenlik iyile\u015ftirmeleri yaparak web sitenizin g\u00fcvenli\u011fini daha da art\u0131rabilirsiniz.<\/p>\n<h4>Zay\u0131f TLS S\u00fcr\u00fcmlerini Devre D\u0131\u015f\u0131 B\u0131rakma<\/h4>\n<p>TLS 1.0 ve TLS 1.1 gibi eski TLS s\u00fcr\u00fcmleri g\u00fcvenlik a\u00e7\u0131klar\u0131 i\u00e7erebilir. Yaln\u0131zca modern ve g\u00fcvenli TLS s\u00fcr\u00fcmlerini (TLS 1.2 ve TLS 1.3) kullanmal\u0131s\u0131n\u0131z.<\/p>\n<pre><code class=\"language-nginx\">ssl_protocols TLSv1.2 TLSv1.3;<\/code><\/pre>\n<p>Bu sat\u0131r\u0131 Nginx yap\u0131land\u0131rman\u0131zdaki <code>server<\/code> blo\u011funa ekleyin veya mevcut olan\u0131 g\u00fcncelleyin.<\/p>\n<h4>G\u00fc\u00e7l\u00fc \u015eifreleme S\u00fcitleri Kullanma<\/h4>\n<p>\u015eifreleme s\u00fcitleri, SSL\/TLS ba\u011flant\u0131lar\u0131nda kullan\u0131lan \u015fifreleme algoritmalar\u0131n\u0131 belirler. G\u00fc\u00e7l\u00fc ve modern \u015fifreleme s\u00fcitleri kullanmak, Man-in-the-Middle (MITM) sald\u0131r\u0131lar\u0131na kar\u015f\u0131 koruma sa\u011flar.<\/p>\n<pre><code class=\"language-nginx\">ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384';\nssl_prefer_server_ciphers on;<\/code><\/pre>\n<p>*   <code>ssl_prefer_server_ciphers on;<\/code>: Nginx&#8217;in kendi \u015fifreleme s\u00fcitlerini tercih etmesini sa\u011flar, bu da daha g\u00fcvenli bir yap\u0131land\u0131rma sunar.<\/p>\n<h4>OCSP Stapling<\/h4>\n<p>OCSP (Online Certificate Status Protocol) Stapling, sunucunun sertifika yetkilisinden (CA) bir sertifikan\u0131n iptal durumunu d\u00fczenli olarak almas\u0131n\u0131 ve bunu taray\u0131c\u0131lara sunmas\u0131n\u0131 sa\u011flar. Bu, taray\u0131c\u0131lar\u0131n CA&#8217;ya do\u011frudan ba\u011flanma ihtiyac\u0131n\u0131 ortadan kald\u0131r\u0131r, performans\u0131 art\u0131r\u0131r ve gizlili\u011fi iyile\u015ftirir.<\/p>\n<pre><code class=\"language-nginx\">ssl_stapling on;\nssl_stapling_verify on;\nresolver 8.8.8.8 8.8.4.4 valid=300s; # Google DNS sunucular\u0131\nresolver_timeout 5s;<\/code><\/pre>\n<p><code>resolver<\/code> direktifi, Nginx&#8217;in OCSP yan\u0131tlar\u0131n\u0131 almak i\u00e7in kullanaca\u011f\u0131 DNS sunucular\u0131n\u0131 belirtir.<\/p>\n<h4>Diffie-Hellman Parametreleri Olu\u015fturma<\/h4>\n<p>Diffie-Hellman (DH) parametreleri, Perfect Forward Secrecy (PFS) sa\u011flayan anahtar de\u011fi\u015fimi i\u00e7in kullan\u0131l\u0131r. G\u00fc\u00e7l\u00fc bir DH parametre dosyas\u0131 olu\u015fturmak, \u00f6zellikle eski TLS s\u00fcr\u00fcmlerinde (TLS 1.2&#8217;den \u00f6nce) anahtar de\u011fi\u015fimi g\u00fcvenli\u011fini art\u0131r\u0131r.<\/p>\n<p>\u00d6ncelikle, 2048 bit veya 4096 bitlik bir DH parametre dosyas\u0131 olu\u015ftural\u0131m. 4096 bit daha g\u00fcvenli ancak biraz daha yava\u015f olabilir.<\/p>\n<pre><code class=\"language-bash\">sudo openssl dhparam -out \/etc\/nginx\/dhparam.pem 2048<\/code><\/pre>\n<p>Bu i\u015flem biraz zaman alabilir. Dosya olu\u015fturulduktan sonra, Nginx yap\u0131land\u0131rman\u0131za ekleyin:<\/p>\n<pre><code class=\"language-nginx\">ssl_dhparam \/etc\/nginx\/dhparam.pem;<\/code><\/pre>\n<h4>HTTP\/2 Kullan\u0131m\u0131<\/h4>\n<p>HTTP\/2, HTTP protokol\u00fcn\u00fcn daha h\u0131zl\u0131 ve verimli bir s\u00fcr\u00fcm\u00fcd\u00fcr. Tek bir TCP ba\u011flant\u0131s\u0131 \u00fczerinden birden fazla iste\u011fi e\u015fzamanl\u0131 olarak i\u015fleyerek performans\u0131 art\u0131r\u0131r. HTTPS ile birlikte kullan\u0131ld\u0131\u011f\u0131nda, modern web siteleri i\u00e7in \u00f6nerilen bir teknolojidir.<\/p>\n<p>Nginx yap\u0131land\u0131rman\u0131zda <code>listen<\/code> direktifine <code>http2<\/code> ekleyerek etkinle\u015ftirebilirsiniz:<\/p>\n<pre><code class=\"language-nginx\">listen 443 ssl http2;\nlisten [::]:443 ssl http2;<\/code><\/pre>\n<p>T\u00fcm bu de\u011fi\u015fiklikleri yapt\u0131ktan sonra, Nginx yap\u0131land\u0131rman\u0131z\u0131n s\u00f6zdizimini tekrar kontrol edin ve servisi yeniden y\u00fckleyin:<\/p>\n<pre><code class=\"language-bash\">sudo nginx -t\nsudo systemctl reload nginx<\/code><\/pre>\n<p>Web sitenizin SSL g\u00fcvenli\u011fini test etmek i\u00e7in SSL Labs&#8217;\u0131n SSL Test arac\u0131n\u0131 kullanabilirsiniz. A+ derecesi almak hedefiniz olmal\u0131d\u0131r.<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular<\/h3>\n<p>Bu b\u00f6l\u00fcmde, Let&#8217;s Encrypt ve Nginx ile ilgili s\u0131k\u00e7a kar\u015f\u0131la\u015f\u0131lan baz\u0131 sorulara yan\u0131tlar bulacaks\u0131n\u0131z.<\/p>\n<h4>Sertifika Neden Yenilenmiyor?<\/h4>\n<p>*   <strong>Cron Job Eksikli\u011fi\/Hatas\u0131:<\/strong> Certbot&#8217;un otomatik yenileme cron job&#8217;unun do\u011fru yap\u0131land\u0131r\u0131ld\u0131\u011f\u0131ndan veya \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olun. <code>sudo certbot renew --dry-run<\/code> komutuyla test edin.<br \/>\n*   <strong>Nginx Yeniden Y\u00fcklenmiyor:<\/strong> Yenileme sonras\u0131 Nginx&#8217;in yeniden y\u00fcklenmesi veya yeniden ba\u015flat\u0131lmas\u0131 gerekir. Cron job&#8217;unuzda <code>systemctl reload nginx<\/code> komutunun oldu\u011fundan emin olun.<br \/>\n*   <strong>Do\u011frulama Sorunlar\u0131:<\/strong> Certbot&#8217;un alan ad\u0131n\u0131z\u0131 do\u011frulamas\u0131 i\u00e7in web sunucunuzun 80 veya 443 portundan eri\u015filebilir olmas\u0131 gerekir. Firewall veya yanl\u0131\u015f Nginx yap\u0131land\u0131rmas\u0131 bu do\u011frulama s\u00fcrecini engelleyebilir.<br \/>\n*   <strong>DNS Sorunlar\u0131:<\/strong> Alan ad\u0131n\u0131z\u0131n DNS kay\u0131tlar\u0131n\u0131n do\u011fru IP adresini i\u015faret etti\u011finden emin olun.<br \/>\n*   <strong>Yetki Sorunlar\u0131:<\/strong> Certbot&#8217;un sertifika dosyalar\u0131n\u0131 yazma veya Nginx yap\u0131land\u0131rmas\u0131n\u0131 okuma\/yazma yetkisine sahip oldu\u011fundan emin olun. Genellikle <code>root<\/code> veya <code>sudo<\/code> ile \u00e7al\u0131\u015ft\u0131r\u0131ld\u0131\u011f\u0131nda bu sorun olmaz.<\/p>\n<h4>Birden Fazla Alan Ad\u0131 \u0130\u00e7in Sertifika Nas\u0131l Al\u0131n\u0131r?<\/h4>\n<p>Tek bir Certbot komutuyla birden fazla alan ad\u0131 veya alt alan ad\u0131 i\u00e7in tek bir sertifika alabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo certbot --nginx -d example.com -d www.example.com -d subdomain.example.com -d anotherdomain.com<\/code><\/pre>\n<p>Bu, t\u00fcm belirtilen alan adlar\u0131n\u0131 kapsayan tek bir sertifika olu\u015fturacakt\u0131r.<\/p>\n<h4>Wildcard Sertifikas\u0131 Nas\u0131l Al\u0131n\u0131r?<\/h4>\n<p>Wildcard sertifikalar\u0131 (\u00f6rn. <code>*.example.com<\/code>), t\u00fcm alt alan adlar\u0131n\u0131 kapsar. Let&#8217;s Encrypt wildcard sertifikalar\u0131 yaln\u0131zca DNS do\u011frulama y\u00f6ntemiyle al\u0131nabilir.<\/p>\n<pre><code class=\"language-bash\">sudo certbot certonly --manual --preferred-challenges=dns -d *.example.com -d example.com<\/code><\/pre>\n<p>Bu komutu \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda, Certbot sizden alan ad\u0131n\u0131z\u0131n DNS kay\u0131tlar\u0131na belirli TXT kay\u0131tlar\u0131 eklemenizi isteyecektir. Bu kay\u0131tlar\u0131 ekledikten sonra Certbot&#8217;a devam etmesi i\u00e7in onay vermeniz gerekir. DNS kay\u0131tlar\u0131n\u0131n yay\u0131lmas\u0131 biraz zaman alabilir.<\/p>\n<h4>Nginx Yap\u0131land\u0131rmam Hatal\u0131, Ne Yapmal\u0131y\u0131m?<\/h4>\n<p>*   <strong>S\u00f6zdizimi Kontrol\u00fc:<\/strong> Herhangi bir de\u011fi\u015fiklik yapt\u0131ktan sonra <code>sudo nginx -t<\/code> komutunu kullanarak yap\u0131land\u0131rman\u0131z\u0131n s\u00f6zdizimini kontrol edin. Hata mesajlar\u0131 size sorunun nerede oldu\u011funu g\u00f6sterecektir.<br \/>\n*   <strong>Hata G\u00fcnl\u00fckleri:<\/strong> Nginx hata g\u00fcnl\u00fcklerini kontrol edin: <code>sudo tail -f \/var\/log\/nginx\/error.log<\/code>. Bu g\u00fcnl\u00fckler, Nginx&#8217;in neden ba\u015flat\u0131lamad\u0131\u011f\u0131na veya istekleri i\u015fleyemedi\u011fine dair de\u011ferli bilgiler i\u00e7erebilir.<br \/>\n*   <strong>Varsay\u0131lan Yap\u0131land\u0131rmaya D\u00f6nme:<\/strong> E\u011fer sorunlar\u0131 \u00e7\u00f6zemiyorsan\u0131z, yapt\u0131\u011f\u0131n\u0131z de\u011fi\u015fiklikleri geri al\u0131n ve Nginx&#8217;i varsay\u0131lan yap\u0131land\u0131rmas\u0131yla \u00e7al\u0131\u015ft\u0131r\u0131n. Ard\u0131ndan ad\u0131m ad\u0131m de\u011fi\u015fiklikleri tekrar uygulay\u0131n.<br \/>\n*   <strong>Yedekleme:<\/strong> \u00d6nemli yap\u0131land\u0131rma dosyalar\u0131n\u0131 de\u011fi\u015ftirmeden \u00f6nce her zaman yedekleyin. \u00d6rne\u011fin, <code>sudo cp \/etc\/nginx\/conf.d\/example.com.conf \/etc\/nginx\/conf.d\/example.com.conf.bak<\/code>.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Bu kapsaml\u0131 rehberde, CentOS 7 \u00fczerinde Nginx web sunucunuzu Let&#8217;s Encrypt ile nas\u0131l g\u00fcvenli hale getirece\u011finizi ad\u0131m ad\u0131m \u00f6\u011frendiniz. Nginx kurulumundan ba\u015flayarak, Certbot ile SSL sertifikas\u0131 alma, Nginx yap\u0131land\u0131rmas\u0131n\u0131 HTTPS&#8217;ye uyarlama, sertifikalar\u0131 otomatik yenileme ve ek g\u00fcvenlik iyile\u015ftirmeleri yapma s\u00fcre\u00e7lerini detayl\u0131 bir \u015fekilde ele ald\u0131k. Art\u0131k web siteniz, kullan\u0131c\u0131 verilerini \u015fifreleyerek daha g\u00fcvenli bir deneyim sunacak, arama motorlar\u0131nda daha iyi s\u0131ralanacak ve kullan\u0131c\u0131lar\u0131n\u0131z\u0131n g\u00fcvenini kazanacakt\u0131r. \u0130nternet g\u00fcvenli\u011fi s\u00fcrekli geli\u015fen bir alan oldu\u011fundan, Nginx ve Let&#8217;s Encrypt g\u00fcncellemelerini takip etmek ve yap\u0131land\u0131rmalar\u0131n\u0131z\u0131 d\u00fczenli olarak g\u00f6zden ge\u00e7irmek \u00f6nemlidir. Bu rehberdeki ad\u0131mlar\u0131 uygulayarak, sa\u011flam ve g\u00fcvenli bir web altyap\u0131s\u0131n\u0131n temellerini atm\u0131\u015f oldunuz.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Nginx&#8217;i Let&#8217;s Encrypt ile CentOS 7 \u00dczerinde G\u00fcvenli Hale Getirme Rehberi\nNginx, y\u00fcksek performansl\u0131 ve \u00f6l\u00e7eklenebilir bir web sunucusu olmas\u0131n","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":[241],"tags":[],"class_list":{"0":"post-38167","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-linux","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>Nginx&#039;i Let&#039;s Encrypt ile CentOS 7 \u00dczerinde G\u00fcvenli Hale Getirme Rehberi - 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\/nginxi-lets-encrypt-ile-centos-7-uzerinde-guvenli-hale-getirme-rehberi\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Nginx&#039;i Let&#039;s Encrypt ile CentOS 7 \u00dczerinde G\u00fcvenli Hale Getirme Rehberi\" \/>\n<meta property=\"og:description\" content=\"Nginx&#039;i Let&#039;s Encrypt ile CentOS 7 \u00dczerinde G\u00fcvenli Hale Getirme Rehberi Nginx, y\u00fcksek performansl\u0131 ve \u00f6l\u00e7eklenebilir bir web sunucusu olmas\u0131n\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/nginxi-lets-encrypt-ile-centos-7-uzerinde-guvenli-hale-getirme-rehberi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-01-24T17:40:46+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\/nginxi-lets-encrypt-ile-centos-7-uzerinde-guvenli-hale-getirme-rehberi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nginxi-lets-encrypt-ile-centos-7-uzerinde-guvenli-hale-getirme-rehberi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Nginx&#8217;i Let&#8217;s Encrypt ile CentOS 7 \u00dczerinde G\u00fcvenli Hale Getirme Rehberi\",\"datePublished\":\"2026-01-24T17:40:46+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nginxi-lets-encrypt-ile-centos-7-uzerinde-guvenli-hale-getirme-rehberi\/\"},\"wordCount\":3096,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Linux\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/nginxi-lets-encrypt-ile-centos-7-uzerinde-guvenli-hale-getirme-rehberi\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nginxi-lets-encrypt-ile-centos-7-uzerinde-guvenli-hale-getirme-rehberi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/nginxi-lets-encrypt-ile-centos-7-uzerinde-guvenli-hale-getirme-rehberi\/\",\"name\":\"Nginx'i Let's Encrypt ile CentOS 7 \u00dczerinde G\u00fcvenli Hale Getirme Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-01-24T17:40:46+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nginxi-lets-encrypt-ile-centos-7-uzerinde-guvenli-hale-getirme-rehberi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/nginxi-lets-encrypt-ile-centos-7-uzerinde-guvenli-hale-getirme-rehberi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nginxi-lets-encrypt-ile-centos-7-uzerinde-guvenli-hale-getirme-rehberi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Nginx&#8217;i Let&#8217;s Encrypt ile CentOS 7 \u00dczerinde G\u00fcvenli Hale Getirme Rehberi\"}]},{\"@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":"Nginx'i Let's Encrypt ile CentOS 7 \u00dczerinde G\u00fcvenli Hale Getirme Rehberi - 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\/nginxi-lets-encrypt-ile-centos-7-uzerinde-guvenli-hale-getirme-rehberi\/","og_locale":"tr_TR","og_type":"article","og_title":"Nginx'i Let's Encrypt ile CentOS 7 \u00dczerinde G\u00fcvenli Hale Getirme Rehberi","og_description":"Nginx'i Let's Encrypt ile CentOS 7 \u00dczerinde G\u00fcvenli Hale Getirme Rehberi Nginx, y\u00fcksek performansl\u0131 ve \u00f6l\u00e7eklenebilir bir web sunucusu olmas\u0131n","og_url":"https:\/\/fatihsoysal.com\/blog\/nginxi-lets-encrypt-ile-centos-7-uzerinde-guvenli-hale-getirme-rehberi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-01-24T17:40:46+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\/nginxi-lets-encrypt-ile-centos-7-uzerinde-guvenli-hale-getirme-rehberi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/nginxi-lets-encrypt-ile-centos-7-uzerinde-guvenli-hale-getirme-rehberi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Nginx&#8217;i Let&#8217;s Encrypt ile CentOS 7 \u00dczerinde G\u00fcvenli Hale Getirme Rehberi","datePublished":"2026-01-24T17:40:46+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/nginxi-lets-encrypt-ile-centos-7-uzerinde-guvenli-hale-getirme-rehberi\/"},"wordCount":3096,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Linux"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/nginxi-lets-encrypt-ile-centos-7-uzerinde-guvenli-hale-getirme-rehberi\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/nginxi-lets-encrypt-ile-centos-7-uzerinde-guvenli-hale-getirme-rehberi\/","url":"https:\/\/fatihsoysal.com\/blog\/nginxi-lets-encrypt-ile-centos-7-uzerinde-guvenli-hale-getirme-rehberi\/","name":"Nginx'i Let's Encrypt ile CentOS 7 \u00dczerinde G\u00fcvenli Hale Getirme Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-01-24T17:40:46+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/nginxi-lets-encrypt-ile-centos-7-uzerinde-guvenli-hale-getirme-rehberi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/nginxi-lets-encrypt-ile-centos-7-uzerinde-guvenli-hale-getirme-rehberi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/nginxi-lets-encrypt-ile-centos-7-uzerinde-guvenli-hale-getirme-rehberi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Nginx&#8217;i Let&#8217;s Encrypt ile CentOS 7 \u00dczerinde G\u00fcvenli Hale Getirme Rehberi"}]},{"@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\/38167","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=38167"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/38167\/revisions"}],"predecessor-version":[{"id":38168,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/38167\/revisions\/38168"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=38167"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=38167"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=38167"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}