{"id":35817,"date":"2025-12-04T05:41:01","date_gmt":"2025-12-04T02:41:01","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=35817"},"modified":"2025-12-04T05:41:01","modified_gmt":"2025-12-04T02:41:01","slug":"apacheyi-lets-encrypt-ile-freebsd-12-0-uzerinde-guvenli-hale-getirme","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/apacheyi-lets-encrypt-ile-freebsd-12-0-uzerinde-guvenli-hale-getirme\/","title":{"rendered":"Apache&#8217;yi Let&#8217;s Encrypt ile FreeBSD 12.0 \u00dczerinde G\u00fcvenli Hale Getirme"},"content":{"rendered":"<p><body><\/p>\n<h2>Apache&#8217;yi Let&#8217;s Encrypt ile FreeBSD 12.0 \u00dczerinde G\u00fcvenli Hale Getirme<\/h2>\n<h3>Giri\u015f<\/h3>\n<p>G\u00fcn\u00fcm\u00fcz internet d\u00fcnyas\u0131nda, web sitelerinin g\u00fcvenli\u011fi hi\u00e7 olmad\u0131\u011f\u0131 kadar kritik bir \u00f6neme sahiptir. Kullan\u0131c\u0131 verilerinin korunmas\u0131, site b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fcn sa\u011flanmas\u0131 ve arama motorlar\u0131ndaki s\u0131ralamalar\u0131n iyile\u015ftirilmesi i\u00e7in HTTPS protokol\u00fc vazge\u00e7ilmez bir standart haline gelmi\u015ftir. Bu teknik makale, a\u00e7\u0131k kaynakl\u0131 ve g\u00fc\u00e7l\u00fc bir i\u015fletim sistemi olan FreeBSD 12.0 \u00fczerinde \u00e7al\u0131\u015fan Apache web sunucusunu, \u00fccretsiz ve otomatikle\u015ftirilmi\u015f bir sertifika yetkilisi olan Let&#8217;s Encrypt ile nas\u0131l g\u00fcvenli hale getirece\u011finizi ad\u0131m ad\u0131m a\u00e7\u0131klamaktad\u0131r.<\/p>\n<p>Apache HTTP Sunucusu, d\u00fcnya genelinde en yayg\u0131n kullan\u0131lan web sunucular\u0131ndan biridir. Esnekli\u011fi, kararl\u0131l\u0131\u011f\u0131 ve geni\u015f mod\u00fcl deste\u011fi sayesinde hem k\u00fc\u00e7\u00fck ki\u015fisel sitelerden hem de b\u00fcy\u00fck kurumsal uygulamalara kadar geni\u015f bir yelpazede tercih edilmektedir. Ancak, varsay\u0131lan kurulumda Apache, verileri \u015fifrelemeden HTTP protokol\u00fc \u00fczerinden iletir. Bu da hassas bilgilerin (kullan\u0131c\u0131 adlar\u0131, \u015fifreler, kredi kart\u0131 bilgileri vb.) k\u00f6t\u00fc niyetli ki\u015filer taraf\u0131ndan kolayca ele ge\u00e7irilmesine yol a\u00e7abilir.<\/p>\n<p>HTTPS (Hypertext Transfer Protocol Secure), HTTP&#8217;nin g\u00fcvenli bir uzant\u0131s\u0131d\u0131r. SSL (Secure Sockets Layer) veya daha g\u00fcncel ad\u0131yla TLS (Transport Layer Security) protokollerini kullanarak sunucu ile istemci aras\u0131ndaki ileti\u015fimi \u015fifreler. Bu \u015fifreleme, verilerin gizlili\u011fini, b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc ve kimlik do\u011frulamas\u0131n\u0131 sa\u011flar. Bir web sitesinin HTTPS kullan\u0131p kullanmad\u0131\u011f\u0131, taray\u0131c\u0131n\u0131n adres \u00e7ubu\u011fundaki kilit simgesi veya &#8220;https:\/\/&#8221; \u00f6n eki ile kolayca anla\u015f\u0131labilir.<\/p>\n<p>Let&#8217;s Encrypt, Internet Security Research Group (ISRG) taraf\u0131ndan sa\u011flanan, \u00fccretsiz, otomatik ve a\u00e7\u0131k bir sertifika yetkilisidir. Geleneksel SSL\/TLS sertifikalar\u0131n\u0131n y\u00fcksek maliyetli ve karma\u015f\u0131k edinme s\u00fcre\u00e7lerine bir alternatif olarak ortaya \u00e7\u0131km\u0131\u015ft\u0131r. Certbot gibi istemci yaz\u0131l\u0131mlar\u0131 sayesinde, sertifika alma, kurma ve yenileme i\u015flemleri tamamen otomatikle\u015ftirilebilir, bu da web y\u00f6neticileri i\u00e7in b\u00fcy\u00fck bir kolayl\u0131k sa\u011flar.<\/p>\n<p>FreeBSD 12.0, kararl\u0131l\u0131\u011f\u0131, g\u00fcvenli\u011fi ve performans\u0131yla bilinen bir i\u015fletim sistemidir. G\u00fc\u00e7l\u00fc a\u011f \u00f6zellikleri, geli\u015fmi\u015f dosya sistemleri ve temiz bir paket y\u00f6netim sistemi (pkg) ile web sunucular\u0131 i\u00e7in ideal bir platform sunar. Bu makalede, Apache&#8217;nin FreeBSD 12.0 \u00fczerindeki kurulumundan ba\u015flayarak, Certbot&#8217;un entegrasyonuna, Let&#8217;s Encrypt sertifikalar\u0131n\u0131n al\u0131nmas\u0131na ve son olarak Apache&#8217;nin HTTPS i\u00e7in g\u00fcvenli bir \u015fekilde yap\u0131land\u0131r\u0131lmas\u0131na kadar t\u00fcm ad\u0131mlar detayl\u0131ca ele al\u0131nacakt\u0131r. Ayr\u0131ca, sertifika yenileme, ek g\u00fcvenlik \u00f6nlemleri ve yayg\u0131n sorun giderme y\u00f6ntemleri de makalenin kapsam\u0131ndad\u0131r. Bu rehberin sonunda, FreeBSD 12.0 sunucunuzda g\u00fcvenli ve modern bir web sitesini ba\u015far\u0131yla yay\u0131nlayabileceksiniz.<\/p>\n<h3>\u00d6n Ko\u015fullar<\/h3>\n<p>Bu rehbere ba\u015flamadan \u00f6nce a\u015fa\u011f\u0131daki \u00f6n ko\u015fullar\u0131n yerine getirilmi\u015f olmas\u0131 gerekmektedir:<\/p>\n<p>*   <strong>FreeBSD 12.0 Sunucusu:<\/strong> \u00c7al\u0131\u015f\u0131r durumda bir FreeBSD 12.0 sunucusu. Makale, root veya <code>sudo<\/code> yetkisine sahip oldu\u011funuzu varsaymaktad\u0131r.<br \/>\n*   <strong>Temel Komut Sat\u0131r\u0131 Bilgisi:<\/strong> FreeBSD komut sat\u0131r\u0131nda temel d\u00fczeyde i\u015flem yapabilme yetene\u011fi.<br \/>\n*   <strong>Alan Ad\u0131:<\/strong> Sunucunuzun genel IP adresine i\u015faret eden kay\u0131tl\u0131 bir alan ad\u0131 (\u00f6rne\u011fin, <code>example.com<\/code>). Let&#8217;s Encrypt sertifikalar\u0131 IP adresleri i\u00e7in de\u011fil, alan adlar\u0131 i\u00e7in verilir. DNS kay\u0131tlar\u0131n\u0131z\u0131n (A veya AAAA kayd\u0131) do\u011fru \u015fekilde yap\u0131land\u0131r\u0131ld\u0131\u011f\u0131ndan emin olun.<br \/>\n*   <strong>Apache Kurulumu:<\/strong> Apache web sunucusunun kurulu ve \u00e7al\u0131\u015f\u0131r durumda olmas\u0131. Hen\u00fcz kurulu de\u011filse, sonraki ad\u0131mlarda nas\u0131l kurulaca\u011f\u0131 anlat\u0131lacakt\u0131r.<br \/>\n*   <strong>Paket Y\u00f6neticisi:<\/strong> <code>pkg<\/code> paket y\u00f6neticisinin g\u00fcncel olmas\u0131. <code>pkg update && pkg upgrade<\/code> komutu ile g\u00fcncelli\u011fini kontrol edebilirsiniz.<br \/>\n*   <strong>A\u00e7\u0131k Portlar:<\/strong> Sunucunuzun g\u00fcvenlik duvar\u0131nda HTTP (80) ve HTTPS (443) portlar\u0131n\u0131n d\u0131\u015far\u0131dan eri\u015fime a\u00e7\u0131k olmas\u0131 gerekmektedir. Let&#8217;s Encrypt, sertifika do\u011frulama i\u00e7in genellikle 80 numaral\u0131 portu kullan\u0131r.<\/p>\n<p>Bu \u00f6n ko\u015fullar sa\u011fland\u0131ktan sonra, Apache&#8217;yi Let&#8217;s Encrypt ile g\u00fcvenli hale getirme s\u00fcrecine ba\u015flayabiliriz.<\/p>\n<h3>Ad\u0131m 1: Apache Kurulumu ve Temel Yap\u0131land\u0131rma<\/h3>\n<p>E\u011fer Apache sunucunuz zaten kurulu ve temel yap\u0131land\u0131rmas\u0131 yap\u0131lm\u0131\u015fsa, bu ad\u0131m\u0131 atlayabilirsiniz. Aksi takdirde, a\u015fa\u011f\u0131daki ad\u0131mlar\u0131 izleyerek Apache&#8217;yi kurup yap\u0131land\u0131ral\u0131m.<\/p>\n<h4>Apache Kurulumu<\/h4>\n<p>\u0130lk olarak, FreeBSD&#8217;nin paket y\u00f6neticisi <code>pkg<\/code>&#8216;yi g\u00fcncelleyelim ve ard\u0131ndan Apache 2.4 s\u00fcr\u00fcm\u00fcn\u00fc kural\u0131m:<\/p>\n<pre><code class=\"language-bash\">sudo pkg update && sudo pkg upgrade\nsudo pkg install apache24<\/code><\/pre>\n<h4>Apache Servisini Ba\u015flatma ve Etkinle\u015ftirme<\/h4>\n<p>Apache&#8217;nin sistem ba\u015flang\u0131c\u0131nda otomatik olarak ba\u015flamas\u0131 i\u00e7in <code>sysrc<\/code> komutunu kullanal\u0131m ve ard\u0131ndan servisi ba\u015flatal\u0131m:<\/p>\n<pre><code class=\"language-bash\">sudo sysrc apache24_enable=\"YES\"\nsudo service apache24 start<\/code><\/pre>\n<p>Bu noktada, web taray\u0131c\u0131n\u0131zda sunucunuzun IP adresini veya alan ad\u0131n\u0131 ziyaret ederek Apache&#8217;nin varsay\u0131lan kar\u015f\u0131lama sayfas\u0131n\u0131 g\u00f6rmeniz gerekir. E\u011fer g\u00f6rm\u00fcyorsan\u0131z, g\u00fcvenlik duvar\u0131 ayarlar\u0131n\u0131z\u0131 kontrol etmeniz gerekebilir.<\/p>\n<h4>G\u00fcvenlik Duvar\u0131 Yap\u0131land\u0131rmas\u0131 (PF \u00d6rne\u011fi)<\/h4>\n<p>FreeBSD&#8217;de yayg\u0131n olarak kullan\u0131lan g\u00fcvenlik duvarlar\u0131ndan biri PF&#8217;dir (Packet Filter). E\u011fer PF kullan\u0131yorsan\u0131z, HTTP (80) ve HTTPS (443) portlar\u0131n\u0131n a\u00e7\u0131k oldu\u011fundan emin olmal\u0131s\u0131n\u0131z.<\/p>\n<p>PF&#8217;yi etkinle\u015ftirmek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">sudo sysrc pf_enable=\"YES\"\nsudo sysrc pflog_enable=\"YES\"\nsudo service pf start<\/code><\/pre>\n<p><code>\/etc\/pf.conf<\/code> dosyas\u0131n\u0131 d\u00fczenleyerek portlar\u0131 a\u00e7\u0131n. \u00d6rnek bir <code>pf.conf<\/code> par\u00e7as\u0131:<\/p>\n<pre><code class=\"language-\"># \/etc\/pf.conf\n<h2>... (Di\u011fer kurallar\u0131n\u0131z) ...<\/h2>\n\n<h2>Default block all<\/h2>\nblock all\n\n<h2>Allow loopback interface<\/h2>\npass in quick on lo0 all\npass out quick on lo0 all\n\n<h2>Allow SSH<\/h2>\npass in on em0 proto tcp from any to any port 22 keep state\n\n<h2>Allow HTTP and HTTPS<\/h2>\npass in on em0 proto tcp from any to any port { 80, 443 } keep state\n\n<h2>Allow outbound traffic<\/h2>\npass out quick on em0 all keep state<\/code><\/pre>\n<p>De\u011fi\u015fiklikleri uygulad\u0131ktan sonra PF&#8217;yi yeniden y\u00fckleyin:<\/p>\n<pre><code class=\"language-bash\">sudo pfctl -f \/etc\/pf.conf<\/code><\/pre>\n<p><code>em0<\/code> yerine kendi a\u011f aray\u00fcz\u00fcn\u00fcz\u00fcn ad\u0131n\u0131 kullanmay\u0131 unutmay\u0131n (\u00f6rne\u011fin <code>vtnet0<\/code>).<\/p>\n<h4>Virtual Host Yap\u0131land\u0131rmas\u0131<\/h4>\n<p>Alan ad\u0131n\u0131z i\u00e7in bir Virtual Host (Sanal Sunucu) yap\u0131land\u0131rmas\u0131 yapmak, Apache&#8217;nin farkl\u0131 alan adlar\u0131na farkl\u0131 i\u00e7erikler sunmas\u0131n\u0131 sa\u011flar. Apache&#8217;nin ana yap\u0131land\u0131rma dosyas\u0131 <code>\/usr\/local\/etc\/apache24\/httpd.conf<\/code>&#8216;tur. Sanal sunucular\u0131 ayr\u0131 bir dosyada tutmak daha d\u00fczenli olacakt\u0131r.<\/p>\n<p>\u00d6ncelikle, <code>httpd.conf<\/code> i\u00e7inde sanal sunucu yap\u0131land\u0131rmalar\u0131n\u0131 dahil eden sat\u0131r\u0131n etkin oldu\u011fundan emin olun:<\/p>\n<pre><code class=\"language-apache\"># \/usr\/local\/etc\/apache24\/httpd.conf\n<h2>...<\/h2>\nInclude etc\/apache24\/extra\/httpd-vhosts.conf\n<h2>...<\/code><\/pre>\n<\/h2>\n<p>Ard\u0131ndan, <code>\/usr\/local\/etc\/apache24\/extra\/httpd-vhosts.conf<\/code> dosyas\u0131n\u0131 d\u00fczenleyin veya yeni bir dosya olu\u015fturun (\u00f6rne\u011fin <code>\/usr\/local\/etc\/apache24\/vhosts\/example.com.conf<\/code> ve <code>httpd.conf<\/code> i\u00e7inde bu dosyay\u0131 dahil edin):<\/p>\n<pre><code class=\"language-apache\"># \/usr\/local\/etc\/apache24\/extra\/httpd-vhosts.conf veya \u00f6zel vhost dosyan\u0131z\n<VirtualHost *:80>\n    ServerAdmin webmaster@example.com\n    DocumentRoot \"\/usr\/local\/www\/apache24\/data\/example.com\"\n    ServerName example.com\n    ServerAlias www.example.com\n    ErrorLog \"\/var\/log\/apache24\/example.com-error.log\"\n    CustomLog \"\/var\/log\/apache24\/example.com-access.log\" common\n\n    <Directory \"\/usr\/local\/www\/apache24\/data\/example.com\">\n        Options Indexes FollowSymLinks\n        AllowOverride All\n        Require all granted\n    <\/Directory>\n<\/VirtualHost><\/code><\/pre>\n<p><code>DocumentRoot<\/code> i\u00e7in bir dizin olu\u015fturun ve i\u00e7ine basit bir <code>index.html<\/code> dosyas\u0131 koyun:<\/p>\n<pre><code class=\"language-bash\">sudo mkdir -p \/usr\/local\/www\/apache24\/data\/example.com\necho \"\" | sudo tee \/usr\/local\/www\/apache24\/data\/example.com\/index.html<\/code><\/pre>\n<p>Yap\u0131land\u0131rma dosyas\u0131nda bir hata olup olmad\u0131\u011f\u0131n\u0131 kontrol edin ve Apache&#8217;yi yeniden ba\u015flat\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo apachectl configtest\nsudo service apache24 restart<\/code><\/pre>\n<p>Art\u0131k <code>http:\/\/example.com<\/code> adresini ziyaret etti\u011finizde &#8220;Hello from example.com!&#8221; mesaj\u0131n\u0131 g\u00f6rmelisiniz.<\/p>\n<h3>Ad\u0131m 2: Certbot Kurulumu (Let&#8217;s Encrypt \u0130stemcisi)<\/h3>\n<p>Certbot, Let&#8217;s Encrypt sertifikalar\u0131n\u0131 kolayca alman\u0131z\u0131 ve y\u00f6netmenizi sa\u011flayan resmi istemci yaz\u0131l\u0131m\u0131d\u0131r. Apache ile entegrasyonu sayesinde yap\u0131land\u0131rma i\u015flemlerini b\u00fcy\u00fck \u00f6l\u00e7\u00fcde otomatikle\u015ftirir.<\/p>\n<h4>Certbot Nedir?<\/h4>\n<p>Certbot, Let&#8217;s Encrypt sertifikalar\u0131 almak, yenilemek ve iptal etmek i\u00e7in kullan\u0131lan bir komut sat\u0131r\u0131 arac\u0131d\u0131r. Apache ve Nginx gibi pop\u00fcler web sunucular\u0131 i\u00e7in \u00f6zel eklentilere sahiptir, bu da sertifika kurulumunu ve web sunucusu yap\u0131land\u0131rmas\u0131n\u0131 basitle\u015ftirir. Certbot, alan ad\u0131n\u0131z\u0131n kontrol\u00fcn\u00fc do\u011frulamak i\u00e7in \u00e7e\u015fitli y\u00f6ntemler (HTTP-01, DNS-01) kullan\u0131r ve do\u011frulama ba\u015far\u0131l\u0131 oldu\u011funda sertifikalar\u0131 otomatik olarak indirir ve yap\u0131land\u0131r\u0131r.<\/p>\n<h4>Kurulum<\/h4>\n<p>FreeBSD&#8217;de Certbot ve Apache eklentisini <code>pkg<\/code> ile kurabiliriz. FreeBSD 12.0 genellikle Python 3.7 veya 3.8 ile gelir. Paketin tam ad\u0131n\u0131 <code>pkg search certbot<\/code> komutuyla kontrol edebilirsiniz. Genellikle <code>py37-certbot<\/code> veya <code>py38-certbot<\/code> \u015feklinde olacakt\u0131r. Bu \u00f6rnekte <code>py37-certbot<\/code> kullanaca\u011f\u0131z.<\/p>\n<pre><code class=\"language-bash\">sudo pkg install py37-certbot py37-certbot-apache<\/code><\/pre>\n<p>Bu komut, Certbot ana paketini ve Apache ile entegrasyonu sa\u011flayan eklentiyi kuracakt\u0131r.<\/p>\n<h3>Ad\u0131m 3: Let&#8217;s Encrypt Sertifikas\u0131 Alma<\/h3>\n<p>Certbot kurulduktan sonra, alan ad\u0131n\u0131z i\u00e7in Let&#8217;s Encrypt sertifikas\u0131n\u0131 alman\u0131n iki ana yolu vard\u0131r: otomatik y\u00f6ntem (Certbot&#8217;un Apache eklentisi ile) ve manuel y\u00f6ntem (sadece sertifikay\u0131 alma ve Apache&#8217;yi elle yap\u0131land\u0131rma). Otomatik y\u00f6ntem genellikle daha kolay ve \u00f6nerilen yoldur.<\/p>\n<h4>Otomatik Y\u00f6ntem (Certbot Apache Eklentisi ile)<\/h4>\n<p>Bu y\u00f6ntem, Certbot&#8217;un Apache yap\u0131land\u0131rman\u0131z\u0131 otomatik olarak alg\u0131lamas\u0131na ve g\u00fcncellemesine olanak tan\u0131r.<\/p>\n<pre><code class=\"language-bash\">sudo certbot --apache<\/code><\/pre>\n<p>Bu komutu \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda, Certbot sizi baz\u0131 sorularla y\u00f6nlendirecektir:<\/p>\n<p>1.  <strong>E-posta Adresi:<\/strong> Acil bildirimler ve kay\u0131p anahtar kurtarma i\u00e7in bir e-posta adresi girmeniz istenecektir.<br \/>\n2.  <strong>Hizmet \u015eartlar\u0131:<\/strong> Let&#8217;s Encrypt hizmet \u015fartlar\u0131n\u0131 kabul etmeniz gerekecektir.<br \/>\n3.  <strong>Alan Ad\u0131 Se\u00e7imi:<\/strong> Certbot, Apache yap\u0131land\u0131rman\u0131zda buldu\u011fu alan adlar\u0131n\u0131 listeleyecektir. Sertifika almak istedi\u011finiz alan adlar\u0131n\u0131 se\u00e7in (\u00f6rne\u011fin, <code>example.com<\/code> ve <code>www.example.com<\/code>). Birden fazla alan ad\u0131 i\u00e7in tek bir sertifika alabilirsiniz.<br \/>\n4.  <strong>HTTP&#8217;den HTTPS&#8217;ye Y\u00f6nlendirme (Redirect):<\/strong> Certbot, HTTP trafi\u011fini otomatik olarak HTTPS&#8217;ye y\u00f6nlendirmek isteyip istemedi\u011finizi soracakt\u0131r. Genellikle bu se\u00e7ene\u011fi (&#8220;2: Redirect&#8221;) se\u00e7mek \u00f6nerilir, \u00e7\u00fcnk\u00fc bu, sitenizin her zaman g\u00fcvenli ba\u011flant\u0131 \u00fczerinden eri\u015filmesini sa\u011flar.<\/p>\n<p>Certbot bu ad\u0131mlar\u0131 tamamlad\u0131ktan sonra, sertifikalar\u0131 alacak, Apache yap\u0131land\u0131rman\u0131z\u0131 g\u00fcncelleyecek (SSL Virtual Host olu\u015fturacak ve HTTP&#8217;den HTTPS&#8217;ye y\u00f6nlendirme kurallar\u0131n\u0131 ekleyecek) ve Apache&#8217;yi yeniden ba\u015flatacakt\u0131r. \u0130\u015flem ba\u015far\u0131l\u0131 olursa, Certbot sertifikan\u0131n ba\u015far\u0131yla kuruldu\u011funu ve ne zaman yenilenece\u011fini belirten bir mesaj g\u00f6sterecektir.<\/p>\n<p>Sertifikalar\u0131n\u0131z genellikle <code>\/usr\/local\/etc\/letsencrypt\/live\/yourdomain.com\/<\/code> dizininde saklan\u0131r. Bu dizin i\u00e7inde <code>fullchain.pem<\/code> (tam sertifika zinciri) ve <code>privkey.pem<\/code> (\u00f6zel anahtar) dosyalar\u0131n\u0131 bulacaks\u0131n\u0131z.<\/p>\n<h4>Manuel Y\u00f6ntem (Sadece Sertifika Alma)<\/h4>\n<p>E\u011fer Apache yap\u0131land\u0131rmas\u0131n\u0131 kendiniz yapmak istiyorsan\u0131z veya Certbot&#8217;un otomatik yap\u0131land\u0131rmas\u0131 beklentilerinizi kar\u015f\u0131lam\u0131yorsa, <code>certonly<\/code> modunu kullanabilirsiniz.<\/p>\n<pre><code class=\"language-bash\">sudo certbot certonly --apache<\/code><\/pre>\n<p>Bu komut da yukar\u0131daki gibi e-posta ve alan ad\u0131 se\u00e7imi ad\u0131mlar\u0131n\u0131 i\u00e7erecektir, ancak Apache yap\u0131land\u0131rman\u0131z\u0131 otomatik olarak de\u011fi\u015ftirmeyecektir. Sertifikalar\u0131 ald\u0131ktan sonra, Apache&#8217;yi elle yap\u0131land\u0131rman\u0131z gerekecektir.<\/p>\n<p>Alternatif olarak, webroot y\u00f6ntemini kullanarak da sertifika alabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo certbot certonly --webroot -w \/usr\/local\/www\/apache24\/data\/example.com -d example.com -d www.example.com<\/code><\/pre>\n<p>Burada:<br \/>\n*   <code>--webroot<\/code>: Certbot&#8217;a webroot do\u011frulama y\u00f6ntemini kullanmas\u0131n\u0131 s\u00f6yler.<br \/>\n*   <code>-w \/usr\/local\/www\/apache24\/data\/example.com<\/code>: Alan ad\u0131n\u0131z\u0131n ana dizinini (DocumentRoot) belirtir. Certbot bu dizine ge\u00e7ici bir dosya yerle\u015ftirerek alan ad\u0131 kontrol\u00fcn\u00fc do\u011frular.<br \/>\n*   <code>-d example.com -d www.example.com<\/code>: Sertifika almak istedi\u011finiz alan adlar\u0131n\u0131 belirtir.<\/p>\n<p>Bu y\u00f6ntemle sertifikalar\u0131 ald\u0131ktan sonra, Apache&#8217;yi HTTPS i\u00e7in manuel olarak yap\u0131land\u0131rman\u0131z gerekecektir.<\/p>\n<h3>Ad\u0131m 4: Apache&#8217;yi HTTPS \u0130\u00e7in Yap\u0131land\u0131rma (Manuel Y\u00f6ntem \u0130\u00e7in)<\/h3>\n<p>E\u011fer Certbot&#8217;un otomatik yap\u0131land\u0131rma y\u00f6ntemini kulland\u0131ysan\u0131z, bu ad\u0131m\u0131 atlayabilirsiniz. Ancak, <code>certonly<\/code> se\u00e7ene\u011fini kulland\u0131ysan\u0131z veya yap\u0131land\u0131rmay\u0131 daha fazla \u00f6zelle\u015ftirmek istiyorsan\u0131z, Apache&#8217;yi HTTPS i\u00e7in manuel olarak yap\u0131land\u0131rman\u0131z gerekir.<\/p>\n<h4>SSL Mod\u00fcl\u00fcn\u00fc Etkinle\u015ftirme<\/h4>\n<p>Apache&#8217;nin SSL\/TLS ba\u011flant\u0131lar\u0131n\u0131 i\u015fleyebilmesi i\u00e7in <code>mod_ssl<\/code> mod\u00fcl\u00fcn\u00fcn etkinle\u015ftirilmesi gerekir. <code>\/usr\/local\/etc\/apache24\/httpd.conf<\/code> dosyas\u0131n\u0131 a\u00e7\u0131n ve a\u015fa\u011f\u0131daki sat\u0131rlar\u0131n ba\u015f\u0131nda <code>#<\/code> i\u015fareti olmad\u0131\u011f\u0131ndan emin olun:<\/p>\n<pre><code class=\"language-apache\"># \/usr\/local\/etc\/apache24\/httpd.conf\n<h2>...<\/h2>\nLoadModule ssl_module libexec\/apache24\/mod_ssl.so\n<h2>...<\/h2>\nInclude etc\/apache24\/extra\/httpd-ssl.conf\n<h2>...<\/code><\/pre>\n<\/h2>\n<p><code>mod_ssl.so<\/code> mod\u00fcl\u00fc, SSL\/TLS i\u015flevselli\u011fini sa\u011flar. <code>httpd-ssl.conf<\/code> dosyas\u0131 ise SSL Virtual Host yap\u0131land\u0131rmalar\u0131n\u0131 i\u00e7erir.<\/p>\n<h4>SSL Virtual Host Olu\u015fturma<\/h4>\n<p>\u015eimdi <code>\/usr\/local\/etc\/apache24\/extra\/httpd-ssl.conf<\/code> dosyas\u0131n\u0131 d\u00fczenleyerek veya ayr\u0131 bir dosyada (\u00f6rne\u011fin <code>\/usr\/local\/etc\/apache24\/vhosts\/example.com-ssl.conf<\/code>) yeni bir SSL Virtual Host olu\u015fturun. E\u011fer ayr\u0131 bir dosya olu\u015fturursan\u0131z, <code>httpd.conf<\/code> i\u00e7inde bunu dahil etmeyi unutmay\u0131n.<\/p>\n<pre><code class=\"language-apache\"># \/usr\/local\/etc\/apache24\/extra\/httpd-ssl.conf veya \u00f6zel ssl vhost dosyan\u0131z\n<IfModule mod_ssl.c>\n<VirtualHost *:443>\n    ServerAdmin webmaster@example.com\n    DocumentRoot \"\/usr\/local\/www\/apache24\/data\/example.com\"\n    ServerName example.com\n    ServerAlias www.example.com\n    ErrorLog \"\/var\/log\/apache24\/example.com-error.log\"\n    CustomLog \"\/var\/log\/apache24\/example.com-access.log\" common\n\n    # SSL Ayarlar\u0131\n    SSLEngine on\n    SSLCertificateFile \"\/usr\/local\/etc\/letsencrypt\/live\/example.com\/fullchain.pem\"\n    SSLCertificateKeyFile \"\/usr\/local\/etc\/letsencrypt\/live\/example.com\/privkey.pem\"\n\n    # G\u00fcvenlik ve Performans \u0130\u00e7in \u00d6nerilen Ayarlar\n    # Modern TLS protokollerini etkinle\u015ftir, eski ve g\u00fcvensiz olanlar\u0131 devre d\u0131\u015f\u0131 b\u0131rak\n    SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1\n\n    # G\u00fc\u00e7l\u00fc \u015fifreleme algoritmalar\u0131n\u0131 kullan\n    SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH\n    SSLHonorCipherOrder on\n\n    # HSTS (HTTP Strict Transport Security)\n    # \u0130lk ziyaret\u00e7iler i\u00e7in HTTP'den HTTPS'ye otomatik ve kal\u0131c\u0131 y\u00f6nlendirme sa\u011flar.\n    # Max-Age s\u00fcresini dikkatli belirleyin.\n    Header always set Strict-Transport-Security \"max-age=63072000; includeSubDomains; preload\"\n\n    # Di\u011fer g\u00fcvenlik ba\u015fl\u0131klar\u0131 (iste\u011fe ba\u011fl\u0131 ama \u00f6nerilir)\n    Header always set X-Content-Type-Options \"nosniff\"\n    Header always set X-XSS-Protection \"1; mode=block\"\n    Header always set X-Frame-Options \"SAMEORIGIN\"\n    Header always set Referrer-Policy \"no-referrer-when-downgrade\"\n\n    <Directory \"\/usr\/local\/www\/apache24\/data\/example.com\">\n        Options Indexes FollowSymLinks\n        AllowOverride All\n        Require all granted\n    <\/Directory>\n<\/VirtualHost>\n<\/IfModule><\/code><\/pre>\n<p><strong>A\u00e7\u0131klamalar:<\/strong><br \/>\n*   <code>SSLEngine on<\/code>: Bu Virtual Host i\u00e7in SSL&#8217;yi etkinle\u015ftirir.<br \/>\n*   <code>SSLCertificateFile<\/code>: Certbot taraf\u0131ndan olu\u015fturulan tam sertifika zincirini (alan ad\u0131n\u0131z\u0131n sertifikas\u0131 ve ara sertifikalar) belirtir.<br \/>\n*   <code>SSLCertificateKeyFile<\/code>: Sertifikan\u0131zla e\u015fle\u015fen \u00f6zel anahtar\u0131 belirtir.<br \/>\n*   <code>SSLProtocol<\/code> ve <code>SSLCipherSuite<\/code>: G\u00fcvenli\u011fi art\u0131rmak i\u00e7in yaln\u0131zca modern ve g\u00fc\u00e7l\u00fc TLS protokollerini ve \u015fifreleme algoritmalar\u0131n\u0131 kullanman\u0131z\u0131 sa\u011flar. Eski ve zay\u0131f protokolleri (SSLv2, SSLv3, TLSv1, TLSv1.1) devre d\u0131\u015f\u0131 b\u0131rakmak \u00f6nemlidir.<br \/>\n*   <code>SSLHonorCipherOrder on<\/code>: Sunucunun \u015fifreleme s\u00fciti tercihlerini kullanmas\u0131n\u0131 sa\u011flar.<br \/>\n*   <code>Header always set Strict-Transport-Security<\/code>: HSTS ba\u015fl\u0131\u011f\u0131, taray\u0131c\u0131lara sitenize her zaman HTTPS \u00fczerinden eri\u015fmeleri gerekti\u011fini bildirir. <code>max-age<\/code> s\u00fcresi boyunca (burada 2 y\u0131l), taray\u0131c\u0131 sitenize HTTP ile eri\u015fmeye \u00e7al\u0131\u015fsa bile otomatik olarak HTTPS&#8217;ye y\u00f6nlendirecektir. <code>includeSubDomains<\/code> alt alan adlar\u0131 i\u00e7in de ge\u00e7erli olmas\u0131n\u0131 sa\u011flar. <code>preload<\/code> ise HSTS Preload listesine dahil olmak isteyen siteler i\u00e7in gereklidir (Google taraf\u0131ndan y\u00f6netilen bir liste).<\/p>\n<h4>HTTP&#8217;den HTTPS&#8217;ye Y\u00f6nlendirme<\/h4>\n<p>Kullan\u0131c\u0131lar\u0131n sitenize her zaman g\u00fcvenli ba\u011flant\u0131 \u00fczerinden eri\u015fti\u011finden emin olmak i\u00e7in, HTTP (80 numaral\u0131 port) trafi\u011fini otomatik olarak HTTPS (443 numaral\u0131 port) trafi\u011fine y\u00f6nlendirmek iyi bir uygulamad\u0131r. Bu, <code>httpd-vhosts.conf<\/code> dosyas\u0131ndaki HTTP Virtual Host tan\u0131m\u0131n\u0131za eklenebilir:<\/p>\n<pre><code class=\"language-apache\"># \/usr\/local\/etc\/apache24\/extra\/httpd-vhosts.conf\n<VirtualHost *:80>\n    ServerName example.com\n    ServerAlias www.example.com\n    Redirect permanent \/ https:\/\/example.com\/\n<\/VirtualHost><\/code><\/pre>\n<p>Veya daha esnek bir <code>mod_rewrite<\/code> kural\u0131 kullanabilirsiniz:<\/p>\n<pre><code class=\"language-apache\"># \/usr\/local\/etc\/apache24\/extra\/httpd-vhosts.conf\n<VirtualHost *:80>\n    ServerName example.com\n    ServerAlias www.example.com\n\n    RewriteEngine On\n    RewriteCond %{HTTPS} off\n    RewriteRule ^(.*)$ https:\/\/%{HTTP_HOST}%{REQUEST_URI} [L,R=301]\n<\/VirtualHost><\/code><\/pre>\n<p><code>mod_rewrite<\/code> kullanacaksan\u0131z, <code>httpd.conf<\/code> i\u00e7inde <code>LoadModule rewrite_module libexec\/apache24\/mod_rewrite.so<\/code> sat\u0131r\u0131n\u0131n etkin oldu\u011fundan emin olun.<\/p>\n<h4>Apache&#8217;yi Yeniden Ba\u015flatma<\/h4>\n<p>Yap\u0131land\u0131rma dosyalar\u0131ndaki de\u011fi\u015fikliklerden sonra, Apache&#8217;nin s\u00f6zdizimini kontrol edin ve servisi yeniden ba\u015flat\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo apachectl configtest\nsudo service apache24 restart<\/code><\/pre>\n<p>Her \u015fey yolundaysa, web taray\u0131c\u0131n\u0131zda <code>http:\/\/example.com<\/code> adresini ziyaret etti\u011finizde otomatik olarak <code>https:\/\/example.com<\/code> adresine y\u00f6nlendirilmeli ve adres \u00e7ubu\u011funda kilit simgesini g\u00f6rmelisiniz.<\/p>\n<h3>Ad\u0131m 5: Sertifika Yenileme<\/h3>\n<p>Let&#8217;s Encrypt sertifikalar\u0131 90 g\u00fcn ge\u00e7erlidir. Bu, sertifikalar\u0131n d\u00fczenli olarak yenilenmesi gerekti\u011fi anlam\u0131na gelir. Certbot bu s\u00fcreci otomatikle\u015ftirmek i\u00e7in tasarlanm\u0131\u015ft\u0131r.<\/p>\n<h4>Neden Yenileme Gerekli?<\/h4>\n<p>Let&#8217;s Encrypt, k\u0131sa s\u00fcreli sertifikalar vererek g\u00fcvenlik ihlali riskini azaltmay\u0131 ve otomatik yenileme s\u00fcrecini te\u015fvik etmeyi ama\u00e7lar. Bu, sertifikalar\u0131n \u00e7al\u0131nmas\u0131 veya k\u00f6t\u00fcye kullan\u0131lmas\u0131 durumunda etki s\u00fcresinin s\u0131n\u0131rl\u0131 kalmas\u0131n\u0131 sa\u011flar. Ayr\u0131ca, bu k\u0131sa s\u00fcre, sertifika yetkililerinin politikalar\u0131n\u0131 veya teknik standartlar\u0131n\u0131 g\u00fcncellemesi durumunda t\u00fcm sertifikalar\u0131n daha h\u0131zl\u0131 bir \u015fekilde yeni standartlara uygun hale getirilmesine olanak tan\u0131r.<\/p>\n<h4>Manuel Yenileme<\/h4>\n<p>Certbot, s\u00fcresi dolmak \u00fczere olan veya zaten s\u00fcresi dolmu\u015f sertifikalar\u0131 yenilemek i\u00e7in bir komut sa\u011flar:<\/p>\n<pre><code class=\"language-bash\">sudo certbot renew<\/code><\/pre>\n<p>Bu komut, sisteminizdeki t\u00fcm Certbot taraf\u0131ndan y\u00f6netilen sertifikalar\u0131 kontrol eder ve s\u00fcresi 30 g\u00fcn i\u00e7inde dolacak olanlar\u0131 yenilemeye \u00e7al\u0131\u015f\u0131r. Yaln\u0131zca s\u00fcresi dolmak \u00fczere olan sertifikalar yenilenir.<\/p>\n<p>Yenileme i\u015flemini test etmek i\u00e7in <code>dry-run<\/code> se\u00e7ene\u011fini kullanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo certbot renew --dry-run<\/code><\/pre>\n<p>Bu, ger\u00e7ek bir yenileme i\u015flemi yapmadan, yenilemenin ba\u015far\u0131l\u0131 olup olmayaca\u011f\u0131n\u0131 kontrol eder.<\/p>\n<h4>Otomatik Yenileme (Cron Job)<\/h4>\n<p>Sertifikalar\u0131n manuel olarak yenilenmesini takip etmek pratik de\u011fildir. Bu nedenle, Certbot yenileme i\u015flemini otomatikle\u015ftirmek i\u00e7in bir cron job kurmak en iyi y\u00f6ntemdir. Certbot, \u00e7o\u011fu sistemde otomatik olarak bir cron job veya systemd zamanlay\u0131c\u0131 birimi kurar. Ancak FreeBSD&#8217;de bunu manuel olarak kurman\u0131z gerekebilir.<\/p>\n<p><code>crontab -e<\/code> komutunu kullanarak root kullan\u0131c\u0131s\u0131 i\u00e7in bir cron job ekleyebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo crontab -e<\/code><\/pre>\n<p>A\u00e7\u0131lan d\u00fczenleyiciye a\u015fa\u011f\u0131daki sat\u0131r\u0131 ekleyin:<\/p>\n<pre><code class=\"language-cron\">0 0,12 <em> <\/em> * \/usr\/local\/bin\/certbot renew --quiet && \/usr\/local\/sbin\/apachectl graceful<\/code><\/pre>\n<p><strong>A\u00e7\u0131klamalar:<\/strong><br \/>\n<em>   <code>0 0,12 <\/em> <em> <\/em><\/code>: Bu, cron job&#8217;\u0131n her g\u00fcn gece yar\u0131s\u0131 (00:00) ve \u00f6\u011flen (12:00) \u00e7al\u0131\u015ft\u0131r\u0131lmas\u0131n\u0131 sa\u011flar. G\u00fcnde iki kez \u00e7al\u0131\u015ft\u0131rmak, olas\u0131 bir hatay\u0131 telafi etmek i\u00e7in yeterli bir s\u0131kl\u0131kt\u0131r.<br \/>\n*   <code>\/usr\/local\/bin\/certbot renew<\/code>: Certbot&#8217;un yenileme komutunu \u00e7al\u0131\u015ft\u0131r\u0131r.<br \/>\n*   <code>--quiet<\/code>: Sadece hatalar veya \u00f6nemli uyar\u0131lar oldu\u011funda \u00e7\u0131kt\u0131 verir.<br \/>\n*   <code>&&<\/code>: Bir \u00f6nceki komut (certbot renew) ba\u015far\u0131l\u0131 olursa, sonraki komutu \u00e7al\u0131\u015ft\u0131r\u0131r.<br \/>\n*   <code>\/usr\/local\/sbin\/apachectl graceful<\/code>: Apache&#8217;yi nazik\u00e7e yeniden ba\u015flat\u0131r. Bu, mevcut ba\u011flant\u0131lar\u0131n kesilmemesini sa\u011flar. Sadece yap\u0131land\u0131rma dosyalar\u0131n\u0131 yeniden y\u00fckler ve yeni ba\u011flant\u0131lar i\u00e7in g\u00fcncel sertifikalar\u0131 kullanmaya ba\u015flar.<\/p>\n<p>Baz\u0131 durumlarda, yenileme i\u015flemi s\u0131ras\u0131nda Apache&#8217;nin k\u0131sa bir s\u00fcreli\u011fine durdurulup ba\u015flat\u0131lmas\u0131 gerekebilir. Bu genellikle Certbot&#8217;un Apache eklentisi taraf\u0131ndan otomatik olarak yap\u0131l\u0131r. E\u011fer <code>certbot renew<\/code> komutu Apache&#8217;yi yeniden ba\u015flatmazsa, yukar\u0131daki cron job&#8217;da <code>\/usr\/local\/sbin\/apachectl graceful<\/code> komutunu ekleyerek bu i\u015flemi manuel olarak tetikleyebilirsiniz.<\/p>\n<p>Bu cron job, sertifikalar\u0131n\u0131z\u0131n s\u00fcresi dolmadan \u00f6nce otomatik olarak yenilenmesini sa\u011flayacak ve web sitenizin s\u00fcrekli olarak HTTPS \u00fczerinden eri\u015filebilir kalmas\u0131n\u0131 garantileyecektir.<\/p>\n<h3>Ek G\u00fcvenlik \u00d6nlemleri<\/h3>\n<p>Let&#8217;s Encrypt ile HTTPS&#8217;yi etkinle\u015ftirmek, web sunucunuzun g\u00fcvenli\u011fini art\u0131rmada b\u00fcy\u00fck bir ad\u0131md\u0131r. Ancak, sunucunuzu daha da g\u00fcvenli hale getirmek i\u00e7in alabilece\u011finiz ba\u015fka \u00f6nlemler de vard\u0131r.<\/p>\n<h4>Apache G\u00fcvenli\u011fini Art\u0131rma<\/h4>\n<p>*   <strong>Sunucu Bilgilerini Gizleme:<\/strong> Apache varsay\u0131lan olarak sunucu t\u00fcr\u00fc ve i\u015fletim sistemi hakk\u0131nda bilgiler verir. Bu bilgileri gizlemek, potansiyel sald\u0131rganlar\u0131n zay\u0131f noktalar\u0131 hedeflemesini zorla\u015ft\u0131r\u0131r.<br \/>\n    *   <code>\/usr\/local\/etc\/apache24\/httpd.conf<\/code> dosyas\u0131nda <code>ServerTokens<\/code> ve <code>ServerSignature<\/code> ayarlar\u0131n\u0131 a\u015fa\u011f\u0131daki gibi de\u011fi\u015ftirin:<\/p>\n<pre><code class=\"language-apache\">ServerTokens Prod        # Sadece \"Apache\" g\u00f6sterir.\n        ServerSignature Off      # Hata sayfalar\u0131ndaki sunucu imzas\u0131n\u0131 kald\u0131r\u0131r.<\/code><\/pre>\n<p>*   <strong>Dizin Listelemesini Kapatma:<\/strong> <code>DocumentRoot<\/code> veya di\u011fer dizinlerde <code>Options Indexes<\/code> etkinse, bir dizinde <code>index.html<\/code> veya <code>index.php<\/code> gibi bir dosya olmad\u0131\u011f\u0131nda, Apache o dizindeki t\u00fcm dosyalar\u0131 listeler. Bu, hassas bilgilerin a\u00e7\u0131\u011fa \u00e7\u0131kmas\u0131na neden olabilir.<br \/>\n    *   <code>Options -Indexes<\/code> kullanarak dizin listelemesini devre d\u0131\u015f\u0131 b\u0131rak\u0131n:<\/p>\n<pre><code class=\"language-apache\"><Directory \"\/usr\/local\/www\/apache24\/data\/example.com\">\n            Options -Indexes FollowSymLinks\n            AllowOverride All\n            Require all granted\n        <\/Directory><\/code><\/pre>\n<p>*   <strong>ModSecurity ve Mod_Evasive Kullan\u0131m\u0131:<\/strong><br \/>\n    *   <strong>ModSecurity:<\/strong> Bir web uygulama g\u00fcvenlik duvar\u0131 (WAF) mod\u00fcl\u00fcd\u00fcr. SQL enjeksiyonu, XSS (Cross-Site Scripting) gibi yayg\u0131n web sald\u0131r\u0131lar\u0131na kar\u015f\u0131 koruma sa\u011flar. Kurulumu karma\u015f\u0131k olabilir ve dikkatli yap\u0131land\u0131rma gerektirir.<br \/>\n    *   <strong>Mod_Evasive:<\/strong> DoS (Denial of Service) ve Brute Force sald\u0131r\u0131lar\u0131na kar\u015f\u0131 koruma sa\u011flamak i\u00e7in tasarlanm\u0131\u015ft\u0131r. Belirli bir s\u00fcre i\u00e7inde \u00e7ok say\u0131da istek g\u00f6nderen IP adreslerini ge\u00e7ici olarak engeller.<br \/>\n*   <strong>Minimum Ayr\u0131cal\u0131k Prensibi:<\/strong> Apache&#8217;nin \u00e7al\u0131\u015ft\u0131\u011f\u0131 kullan\u0131c\u0131n\u0131n (genellikle <code>www<\/code>) yaln\u0131zca ihtiya\u00e7 duydu\u011fu dosya ve dizinlere eri\u015fim izni oldu\u011fundan emin olun. <code>DocumentRoot<\/code> ve alt\u0131ndaki dosyalar do\u011fru izinlere sahip olmal\u0131d\u0131r (genellikle dosyalar i\u00e7in 644, dizinler i\u00e7in 755).<br \/>\n*   <strong>Log Y\u00f6netimi:<\/strong> Apache loglar\u0131n\u0131 d\u00fczenli olarak kontrol edin (<code>\/var\/log\/apache24\/<\/code>). Anormal aktivite belirtilerini izlemek, potansiyel sald\u0131r\u0131lar\u0131 erken tespit etmenize yard\u0131mc\u0131 olabilir. Loglar\u0131 merkezi bir log y\u00f6netim sistemine (\u00f6rne\u011fin ELK Stack) g\u00f6ndermek faydal\u0131 olabilir.<\/p>\n<h4>G\u00fcvenlik Duvar\u0131 (PF) \u0130nce Ayarlar\u0131<\/h4>\n<p>PF, sunucunuzu daha da g\u00fc\u00e7lendirmek i\u00e7in bir\u00e7ok geli\u015fmi\u015f \u00f6zelli\u011fe sahiptir:<br \/>\n*   <strong>Rate Limiting:<\/strong> Belirli bir IP adresinden belirli bir porta gelen ba\u011flant\u0131 say\u0131s\u0131n\u0131 s\u0131n\u0131rlayarak DoS sald\u0131r\u0131lar\u0131n\u0131 hafifletebilirsiniz.<\/p>\n<pre><code class=\"language-\">pass in on em0 proto tcp from any to any port { 80, 443 } keep state (max-src-conn 100, max-src-conn-rate 15\/5, overload <apache_bad_ips> flush global)<\/code><\/pre>\n<p>    Bu kural, bir IP adresinden ayn\u0131 anda 100&#8217;den fazla ba\u011flant\u0131ya veya 5 saniyede 15&#8217;ten fazla ba\u011flant\u0131ya izin vermez ve k\u00f6t\u00fc niyetli IP&#8217;leri <code><apache_bad_ips><\/code> tablosuna ekler.<br \/>\n*   <strong>Kara Listeleme (Blacklisting):<\/strong> Bilinen k\u00f6t\u00fc niyetli IP adreslerini i\u00e7eren bir tablo olu\u015fturarak bu adreslerden gelen trafi\u011fi tamamen engelleyebilirsiniz.<\/p>\n<pre><code class=\"language-\">table <bad_ips> persist file \"\/etc\/pf.bad_ips\"\n    block in quick from <bad_ips> to any<\/code><\/pre>\n<p>    <code>\/etc\/pf.bad_ips<\/code> dosyas\u0131n\u0131 manuel olarak veya Fail2Ban gibi ara\u00e7larla g\u00fcncelleyebilirsiniz.<\/p>\n<h4>Sistem G\u00fcncellemeleri<\/h4>\n<p>Apache, Certbot, Python ve FreeBSD i\u015fletim sisteminin kendisi de dahil olmak \u00fczere t\u00fcm yaz\u0131l\u0131mlar\u0131 g\u00fcncel tutmak hayati \u00f6neme sahiptir. Yaz\u0131l\u0131m geli\u015ftiricileri s\u00fcrekli olarak g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 yamalar ve performans iyile\u015ftirmeleri sunar.<br \/>\n*   <strong>Paket G\u00fcncellemeleri:<\/strong> D\u00fczenli olarak <code>sudo pkg update && sudo pkg upgrade<\/code> komutunu \u00e7al\u0131\u015ft\u0131rarak kurulu t\u00fcm paketlerinizi g\u00fcncelleyin.<br \/>\n*   <strong>\u0130\u015fletim Sistemi G\u00fcncellemeleri:<\/strong> FreeBSD \u00e7ekirde\u011fi ve temel sistem bile\u015fenleri i\u00e7in g\u00fcncellemeleri <code>sudo freebsd-update fetch install<\/code> komutu ile uygulay\u0131n. Bu, sunucunuzun en son g\u00fcvenlik yamalar\u0131na sahip olmas\u0131n\u0131 sa\u011flar.<\/p>\n<p>Bu ek g\u00fcvenlik \u00f6nlemleri, web sunucunuzun genel g\u00fcvenlik duru\u015funu \u00f6nemli \u00f6l\u00e7\u00fcde g\u00fc\u00e7lendirecek ve potansiyel tehditlere kar\u015f\u0131 daha diren\u00e7li hale getirecektir.<\/p>\n<h3>Sorun Giderme<\/h3>\n<p>Apache&#8217;yi Let&#8217;s Encrypt ile yap\u0131land\u0131r\u0131rken baz\u0131 sorunlarla kar\u015f\u0131la\u015fmak olas\u0131d\u0131r. \u0130\u015fte yayg\u0131n hatalar ve sorun giderme ipu\u00e7lar\u0131:<\/p>\n<h4>Yayg\u0131n Hatalar<\/h4>\n<p>*   <strong>Port \u00c7ak\u0131\u015fmalar\u0131:<\/strong> Apache&#8217;nin 80 veya 443 numaral\u0131 portlar\u0131 dinleyememesi. Bu genellikle ba\u015fka bir servisin (\u00f6rne\u011fin Nginx veya farkl\u0131 bir web sunucusu) ayn\u0131 portlar\u0131 kullanmaya \u00e7al\u0131\u015fmas\u0131ndan kaynaklan\u0131r.<br \/>\n    *   <code>sudo sockstat -4 -6 -l<\/code> komutu ile hangi portlar\u0131n hangi uygulamalar taraf\u0131ndan dinlendi\u011fini kontrol edebilirsiniz.<br \/>\n    *   Apache&#8217;nin <code>Listen<\/code> direktifinin <code>httpd.conf<\/code> dosyas\u0131nda do\u011fru yap\u0131land\u0131r\u0131ld\u0131\u011f\u0131ndan emin olun (<code>Listen 80<\/code>, <code>Listen 443<\/code>).<br \/>\n*   <strong>G\u00fcvenlik Duvar\u0131 Engellemeleri:<\/strong> G\u00fcvenlik duvar\u0131n\u0131z\u0131n (PF, IPFW vb.) 80 ve 443 numaral\u0131 portlara gelen ba\u011flant\u0131lar\u0131 engellemesi.<br \/>\n    *   PF i\u00e7in <code>\/etc\/pf.conf<\/code> dosyas\u0131n\u0131 kontrol edin ve <code>pass in on <interface> proto tcp from any to any port { 80, 443 }<\/code> gibi kurallar\u0131n oldu\u011fundan emin olun. De\u011fi\u015fikliklerden sonra <code>sudo pfctl -f \/etc\/pf.conf<\/code> komutunu \u00e7al\u0131\u015ft\u0131r\u0131n.<br \/>\n    *   Ge\u00e7ici olarak g\u00fcvenlik duvar\u0131n\u0131 devre d\u0131\u015f\u0131 b\u0131rak\u0131p (test ama\u00e7l\u0131) sorunun kaybolup kaybolmad\u0131\u011f\u0131na bakabilirsiniz. (\u00dcretim ortam\u0131nda dikkatli olun!)<br \/>\n*   <strong>DNS Sorunlar\u0131:<\/strong> Alan ad\u0131n\u0131z\u0131n sunucunuzun do\u011fru IP adresine i\u015faret etmemesi veya DNS yay\u0131l\u0131m\u0131n\u0131n hen\u00fcz tamamlanmam\u0131\u015f olmas\u0131. Let&#8217;s Encrypt do\u011frulama s\u0131ras\u0131nda alan ad\u0131n\u0131za eri\u015femezse sertifika veremez.<br \/>\n    *   <code>dig example.com<\/code> veya <code>nslookup example.com<\/code> komutlar\u0131n\u0131 kullanarak alan ad\u0131n\u0131z\u0131n do\u011fru IP adresine \u00e7\u00f6z\u00fcmlenip \u00e7\u00f6z\u00fcmlenmedi\u011fini kontrol edin.<br \/>\n    *   <code>ping example.com<\/code> ile sunucunuza eri\u015fip eri\u015femedi\u011finizi kontrol edin.<br \/>\n*   <strong>Apache Yap\u0131land\u0131rma Hatalar\u0131:<\/strong> Yanl\u0131\u015f yaz\u0131lm\u0131\u015f direktifler, eksik mod\u00fcller veya yanl\u0131\u015f dosya yollar\u0131 Apache&#8217;nin ba\u015flamas\u0131n\u0131 engelleyebilir.<br \/>\n    *   <code>sudo apachectl configtest<\/code> komutu, Apache yap\u0131land\u0131rma dosyalar\u0131ndaki s\u00f6zdizimi hatalar\u0131n\u0131 kontrol eder ve ayr\u0131nt\u0131l\u0131 bir \u00e7\u0131kt\u0131 verir. Bu komutu her yap\u0131land\u0131rma de\u011fi\u015fikli\u011finden sonra \u00e7al\u0131\u015ft\u0131rmak \u00f6nemlidir.<br \/>\n    *   Apache hata g\u00fcnl\u00fcklerini (<code>\/var\/log\/apache24\/error.log<\/code>) kontrol edin. Bu g\u00fcnl\u00fckler, Apache&#8217;nin neden ba\u015flamad\u0131\u011f\u0131n\u0131 veya belirli bir hata verdi\u011fini anlaman\u0131za yard\u0131mc\u0131 olabilir.<br \/>\n*   <strong>Certbot Hatalar\u0131:<\/strong> Certbot&#8217;un sertifika alamamas\u0131 veya yap\u0131land\u0131rma yapamamas\u0131.<br \/>\n    *   Certbot&#8217;un g\u00fcnl\u00fcklerini kontrol edin: <code>\/var\/log\/letsencrypt\/<\/code>. Bu g\u00fcnl\u00fckler, do\u011frulama ba\u015far\u0131s\u0131zl\u0131klar\u0131 veya di\u011fer Certbot ile ilgili sorunlar hakk\u0131nda ayr\u0131nt\u0131l\u0131 bilgi sa\u011flar.<br \/>\n    *   Do\u011frulama y\u00f6nteminizi (\u00f6rne\u011fin <code>--webroot<\/code> ile belirtilen <code>DocumentRoot<\/code> yolu) veya alan ad\u0131 arg\u00fcmanlar\u0131n\u0131z\u0131 kontrol edin.<\/p>\n<h4>Yard\u0131m Kaynaklar\u0131<\/h4>\n<p>Sorunlar\u0131 kendi ba\u015f\u0131n\u0131za \u00e7\u00f6zemedi\u011finizde, a\u015fa\u011f\u0131daki kaynaklar size yard\u0131mc\u0131 olabilir:<br \/>\n*   <strong>Certbot Dok\u00fcmantasyonu:<\/strong> Certbot&#8217;un resmi web sitesi (certbot.eff.org) kapsaml\u0131 dok\u00fcmantasyon ve sorun giderme k\u0131lavuzlar\u0131 sunar.<br \/>\n*   <strong>Let&#8217;s Encrypt Forumlar\u0131:<\/strong> Let&#8217;s Encrypt toplulu\u011fu olduk\u00e7a aktiftir ve benzer sorunlarla kar\u015f\u0131la\u015fan bir\u00e7ok kullan\u0131c\u0131ya yard\u0131mc\u0131 olunmu\u015ftur. Sorununuzu forumlarda aratabilir veya yeni bir konu a\u00e7abilirsiniz.<br \/>\n*   <strong>Apache Dok\u00fcmantasyonu:<\/strong> Apache HTTP Sunucusu&#8217;nun resmi dok\u00fcmantasyonu, yap\u0131land\u0131rma direktifleri ve mod\u00fcller hakk\u0131nda derinlemesine bilgi sa\u011flar.<br \/>\n*   <strong>FreeBSD Forumlar\u0131 ve Mailing Listeleri:<\/strong> FreeBSD toplulu\u011fu, i\u015fletim sistemiyle ilgili sorunlar ve genel sunucu yap\u0131land\u0131rmas\u0131 konusunda destek sa\u011flayabilir.<br \/>\n*   <strong>Stack Overflow ve Di\u011fer Teknik Forumlar:<\/strong> Genel sorunlar i\u00e7in geni\u015f bir bilgi taban\u0131 sunar.<\/p>\n<p>Sorun giderme s\u00fcrecinde sab\u0131rl\u0131 olmak ve hata mesajlar\u0131n\u0131 dikkatlice okumak \u00f6nemlidir. Her hata mesaj\u0131, sorunun k\u00f6kenine dair \u00f6nemli ipu\u00e7lar\u0131 i\u00e7erir.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Bu teknik makale boyunca, FreeBSD 12.0 i\u015fletim sistemi \u00fczerinde Apache web sunucusunu Let&#8217;s Encrypt sertifikalar\u0131 ile nas\u0131l g\u00fcvenli hale getirece\u011finizi ad\u0131m ad\u0131m inceledik. Modern web d\u00fcnyas\u0131nda HTTPS&#8217;nin vazge\u00e7ilmez bir standart haline geldi\u011fini ve kullan\u0131c\u0131 verilerinin korunmas\u0131, site b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fcn sa\u011flanmas\u0131 ve arama motoru s\u0131ralamalar\u0131n\u0131n iyile\u015ftirilmesi a\u00e7\u0131s\u0131ndan kritik bir rol oynad\u0131\u011f\u0131n\u0131 vurgulad\u0131k.<\/p>\n<p>S\u00fcre\u00e7, Apache&#8217;nin temel kurulumu ve Virtual Host yap\u0131land\u0131rmas\u0131 ile ba\u015flad\u0131. Ard\u0131ndan, Let&#8217;s Encrypt sertifikalar\u0131n\u0131 otomatik olarak y\u00f6netmek i\u00e7in g\u00fc\u00e7l\u00fc bir ara\u00e7 olan Certbot&#8217;u kurduk. Certbot&#8217;un Apache eklentisi sayesinde, sertifika alma ve web sunucusu yap\u0131land\u0131rmas\u0131n\u0131 b\u00fcy\u00fck \u00f6l\u00e7\u00fcde otomatikle\u015ftirdik. Manuel yap\u0131land\u0131rma ad\u0131mlar\u0131n\u0131 da ele alarak, SSL Virtual Host olu\u015fturma ve HTTP trafi\u011fini HTTPS&#8217;ye y\u00f6nlendirme gibi kritik ayarlar\u0131 detayland\u0131rd\u0131k. \u00d6zellikle, g\u00fc\u00e7l\u00fc TLS protokolleri ve \u015fifreleme s\u00fcitleri kullanarak sunucunuzun g\u00fcvenli\u011fini art\u0131rma ve HSTS (HTTP Strict Transport Security) gibi modern g\u00fcvenlik ba\u015fl\u0131klar\u0131n\u0131 uygulama y\u00f6ntemlerini g\u00f6sterdik.<\/p>\n<p>Let&#8217;s Encrypt sertifikalar\u0131n\u0131n 90 g\u00fcnl\u00fck ge\u00e7erlilik s\u00fcresi nedeniyle, otomatik yenilemenin \u00f6nemi \u00fczerinde durduk ve bu s\u00fcreci bir cron job ile nas\u0131l otomatikle\u015ftirece\u011fimizi anlatt\u0131k. Bu, web sitenizin s\u00fcrekli olarak g\u00fcvenli ve eri\u015filebilir kalmas\u0131n\u0131 sa\u011flamak i\u00e7in hayati bir ad\u0131md\u0131r. Ayr\u0131ca, Apache sunucu bilgilerini gizleme, dizin listelemesini kapatma, ModSecurity gibi web uygulama g\u00fcvenlik duvarlar\u0131 kullanma, g\u00fcvenlik duvar\u0131 (PF) ince ayarlar\u0131 ve d\u00fczenli sistem g\u00fcncellemeleri gibi ek g\u00fcvenlik \u00f6nlemlerine de de\u011findik. Son olarak, kar\u015f\u0131la\u015f\u0131labilecek yayg\u0131n sorunlar\u0131 ve bu sorunlar\u0131 gidermek i\u00e7in kullan\u0131labilecek kaynaklar\u0131 listeledik.<\/p>\n<p>Apache&#8217;yi Let&#8217;s Encrypt ile g\u00fcvenli hale getirmek, sadece teknik bir gereklilik de\u011fil, ayn\u0131 zamanda kullan\u0131c\u0131lar\u0131n\u0131za duydu\u011funuz sorumlulu\u011fun ve modern web standartlar\u0131na uyumun bir g\u00f6stergesidir. HTTPS, kullan\u0131c\u0131lar\u0131n sitenize olan g\u00fcvenini art\u0131r\u0131r, veri gizlili\u011fini sa\u011flar ve arama motorlar\u0131 taraf\u0131ndan olumlu bir fakt\u00f6r olarak de\u011ferlendirilir. Bu rehberdeki ad\u0131mlar\u0131 takip ederek, FreeBSD 12.0 sunucunuzda g\u00fcvenli ve performansl\u0131 bir web ortam\u0131 olu\u015fturabilir, kullan\u0131c\u0131lar\u0131n\u0131za g\u00fcvenli bir deneyim sunabilirsiniz. Unutmay\u0131n, g\u00fcvenlik s\u00fcrekli bir s\u00fcre\u00e7tir; bu nedenle d\u00fczenli g\u00fcncellemeler ve g\u00fcvenlik kontrolleri yapmaya devam etmek b\u00fcy\u00fck \u00f6nem ta\u015f\u0131maktad\u0131r.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Apache&#8217;yi Let&#8217;s Encrypt ile FreeBSD 12.0 \u00dczerinde G\u00fcvenli Hale Getirme\nGiri\u015f\nG\u00fcn\u00fcm\u00fcz internet d\u00fcnyas\u0131nda, web sitelerinin g\u00fcvenli\u011fi hi\u00e7 ol","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":[874],"tags":[],"class_list":{"0":"post-35817","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-server","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>Apache&#039;yi Let&#039;s Encrypt ile FreeBSD 12.0 \u00dczerinde G\u00fcvenli Hale Getirme - 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\/apacheyi-lets-encrypt-ile-freebsd-12-0-uzerinde-guvenli-hale-getirme\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Apache&#039;yi Let&#039;s Encrypt ile FreeBSD 12.0 \u00dczerinde G\u00fcvenli Hale Getirme\" \/>\n<meta property=\"og:description\" content=\"Apache&#039;yi Let&#039;s Encrypt ile FreeBSD 12.0 \u00dczerinde G\u00fcvenli Hale Getirme Giri\u015f G\u00fcn\u00fcm\u00fcz internet d\u00fcnyas\u0131nda, web sitelerinin g\u00fcvenli\u011fi hi\u00e7 ol\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/apacheyi-lets-encrypt-ile-freebsd-12-0-uzerinde-guvenli-hale-getirme\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-04T02:41:01+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=\"24 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/apacheyi-lets-encrypt-ile-freebsd-12-0-uzerinde-guvenli-hale-getirme\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/apacheyi-lets-encrypt-ile-freebsd-12-0-uzerinde-guvenli-hale-getirme\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Apache&#8217;yi Let&#8217;s Encrypt ile FreeBSD 12.0 \u00dczerinde G\u00fcvenli Hale Getirme\",\"datePublished\":\"2025-12-04T02:41:01+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/apacheyi-lets-encrypt-ile-freebsd-12-0-uzerinde-guvenli-hale-getirme\/\"},\"wordCount\":3990,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Server\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/apacheyi-lets-encrypt-ile-freebsd-12-0-uzerinde-guvenli-hale-getirme\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/apacheyi-lets-encrypt-ile-freebsd-12-0-uzerinde-guvenli-hale-getirme\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/apacheyi-lets-encrypt-ile-freebsd-12-0-uzerinde-guvenli-hale-getirme\/\",\"name\":\"Apache'yi Let's Encrypt ile FreeBSD 12.0 \u00dczerinde G\u00fcvenli Hale Getirme - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-12-04T02:41:01+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/apacheyi-lets-encrypt-ile-freebsd-12-0-uzerinde-guvenli-hale-getirme\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/apacheyi-lets-encrypt-ile-freebsd-12-0-uzerinde-guvenli-hale-getirme\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/apacheyi-lets-encrypt-ile-freebsd-12-0-uzerinde-guvenli-hale-getirme\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Apache&#8217;yi Let&#8217;s Encrypt ile FreeBSD 12.0 \u00dczerinde G\u00fcvenli Hale Getirme\"}]},{\"@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":"Apache'yi Let's Encrypt ile FreeBSD 12.0 \u00dczerinde G\u00fcvenli Hale Getirme - 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\/apacheyi-lets-encrypt-ile-freebsd-12-0-uzerinde-guvenli-hale-getirme\/","og_locale":"tr_TR","og_type":"article","og_title":"Apache'yi Let's Encrypt ile FreeBSD 12.0 \u00dczerinde G\u00fcvenli Hale Getirme","og_description":"Apache'yi Let's Encrypt ile FreeBSD 12.0 \u00dczerinde G\u00fcvenli Hale Getirme Giri\u015f G\u00fcn\u00fcm\u00fcz internet d\u00fcnyas\u0131nda, web sitelerinin g\u00fcvenli\u011fi hi\u00e7 ol","og_url":"https:\/\/fatihsoysal.com\/blog\/apacheyi-lets-encrypt-ile-freebsd-12-0-uzerinde-guvenli-hale-getirme\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-12-04T02:41:01+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"24 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/apacheyi-lets-encrypt-ile-freebsd-12-0-uzerinde-guvenli-hale-getirme\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/apacheyi-lets-encrypt-ile-freebsd-12-0-uzerinde-guvenli-hale-getirme\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Apache&#8217;yi Let&#8217;s Encrypt ile FreeBSD 12.0 \u00dczerinde G\u00fcvenli Hale Getirme","datePublished":"2025-12-04T02:41:01+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/apacheyi-lets-encrypt-ile-freebsd-12-0-uzerinde-guvenli-hale-getirme\/"},"wordCount":3990,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Server"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/apacheyi-lets-encrypt-ile-freebsd-12-0-uzerinde-guvenli-hale-getirme\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/apacheyi-lets-encrypt-ile-freebsd-12-0-uzerinde-guvenli-hale-getirme\/","url":"https:\/\/fatihsoysal.com\/blog\/apacheyi-lets-encrypt-ile-freebsd-12-0-uzerinde-guvenli-hale-getirme\/","name":"Apache'yi Let's Encrypt ile FreeBSD 12.0 \u00dczerinde G\u00fcvenli Hale Getirme - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-12-04T02:41:01+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/apacheyi-lets-encrypt-ile-freebsd-12-0-uzerinde-guvenli-hale-getirme\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/apacheyi-lets-encrypt-ile-freebsd-12-0-uzerinde-guvenli-hale-getirme\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/apacheyi-lets-encrypt-ile-freebsd-12-0-uzerinde-guvenli-hale-getirme\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Apache&#8217;yi Let&#8217;s Encrypt ile FreeBSD 12.0 \u00dczerinde G\u00fcvenli Hale Getirme"}]},{"@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\/35817","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=35817"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/35817\/revisions"}],"predecessor-version":[{"id":35818,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/35817\/revisions\/35818"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=35817"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=35817"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=35817"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}