{"id":33784,"date":"2025-11-07T01:01:10","date_gmt":"2025-11-06T22:01:10","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/docker-ortaminda-apache-web-sunucusunu-ssl-ile-guvenli-hale-getirme-rehberi\/"},"modified":"2025-11-07T01:01:10","modified_gmt":"2025-11-06T22:01:10","slug":"docker-ortaminda-apache-web-sunucusunu-ssl-ile-guvenli-hale-getirme-rehberi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/docker-ortaminda-apache-web-sunucusunu-ssl-ile-guvenli-hale-getirme-rehberi\/","title":{"rendered":"Docker Ortam\u0131nda Apache Web Sunucusunu SSL ile G\u00fcvenli Hale Getirme Rehberi"},"content":{"rendered":"<p><body><\/p>\n<p>Web uygulamalar\u0131n\u0131z\u0131n g\u00fcvenli\u011fini sa\u011flamak g\u00fcn\u00fcm\u00fcz internet d\u00fcnyas\u0131nda vazge\u00e7ilmez bir \u00f6nceliktir. \u00d6zellikle hassas verilerin iletiminde HTTPS kullan\u0131m\u0131, hem kullan\u0131c\u0131 g\u00fcvenini art\u0131r\u0131r hem de SEO performans\u0131n\u0131z\u0131 olumlu etkiler. Peki, Docker konteynerlerinde \u00e7al\u0131\u015fan bir Apache sunucusunu SSL\/TLS ile nas\u0131l g\u00fcvenli hale getirebiliriz? Bu kapsaml\u0131 rehberde, bu temel g\u00fcvenlik ad\u0131m\u0131n\u0131 ad\u0131m ad\u0131m ele alaca\u011f\u0131z.<\/p>\n<p>G\u00fcn\u00fcm\u00fczde internet kullan\u0131c\u0131lar\u0131, ziyaret ettikleri sitelerin g\u00fcvenli olmas\u0131n\u0131 beklemektedir. Bir web sitesi, kullan\u0131c\u0131 verilerini (\u015fifreler, kredi kart\u0131 bilgileri, ki\u015fisel veriler vb.) sunucuya iletirken bu verilerin \u00fc\u00e7\u00fcnc\u00fc ki\u015filer taraf\u0131ndan ele ge\u00e7irilmesini \u00f6nlemek zorundad\u0131r. \u0130\u015fte tam bu noktada SSL\/TLS devreye girer. SSL (Secure Sockets Layer) ve onun daha modern ve g\u00fcvenli halefi TLS (Transport Layer Security), istemci (taray\u0131c\u0131) ile sunucu aras\u0131ndaki ileti\u015fimi \u015fifreleyerek veri b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc ve gizlili\u011fini sa\u011flar. Bu, siber sald\u0131rganlar\u0131n veri trafi\u011fini dinlemesini (eavesdropping) veya de\u011fi\u015ftirmesini (tampering) engeller.<\/p>\n<p>Docker, uygulamalar\u0131 izole konteynerler i\u00e7inde \u00e7al\u0131\u015ft\u0131rma esnekli\u011fi sunarken, bu izolasyon g\u00fcvenlik sorumlulu\u011funu ortadan kald\u0131rmaz. Aksine, konteynerle\u015ftirilmi\u015f uygulamalar\u0131n da t\u0131pk\u0131 geleneksel sunuculardaki gibi do\u011fru bir \u015fekilde yap\u0131land\u0131r\u0131lmas\u0131 ve g\u00fcvence alt\u0131na al\u0131nmas\u0131 gerekir. Apache web sunucusu, d\u00fcnya genelinde en yayg\u0131n kullan\u0131lan web sunucular\u0131ndan biridir ve genellikle dinamik web uygulamalar\u0131n\u0131 bar\u0131nd\u0131rmak i\u00e7in tercih edilir. Bu nedenle, Docker konteynerinde \u00e7al\u0131\u015fan bir Apache \u00f6rne\u011finin SSL\/TLS ile g\u00fcvenli hale getirilmesi, modern bir da\u011f\u0131t\u0131m stratejisinin temel bir par\u00e7as\u0131d\u0131r. G\u00fcvenli olmayan bir HTTP ba\u011flant\u0131s\u0131 \u00fczerinden iletilen t\u00fcm bilgiler a\u00e7\u0131k metin olarak g\u00f6nderilir ve bu da sald\u0131rganlar i\u00e7in kolay bir hedef olu\u015fturur. \u00d6te yandan, arama motorlar\u0131 da HTTPS kullanan sitelere daha y\u00fcksek \u00f6ncelik vermekte, bu da SEO a\u00e7\u0131s\u0131ndan kritik bir fakt\u00f6rd\u00fcr.<\/p>\n<div class=\"expert-tip\">Uzman \u0130pucu: Sadece SSL sertifikas\u0131 kurmakla kalmay\u0131n, ayn\u0131 zamanda d\u00fczenli g\u00fcvenlik denetimleri ve g\u00fcncellemelerle sisteminizi s\u00fcrekli g\u00fcvende tutun. G\u00fcvenlik bir s\u00fcre\u00e7tir, tek seferlik bir eylem de\u011fil.<\/div>\n<p>Bir\u00e7ok durumda, kurumlar veya bireyler, web sitelerinin itibar\u0131n\u0131 korumak ve yasal d\u00fczenlemelere (\u00f6rne\u011fin GDPR gibi) uyum sa\u011flamak zorundad\u0131r. HTTPS, bu gereklilikleri kar\u015f\u0131laman\u0131n en etkili yollar\u0131ndan biridir. Ayr\u0131ca, web taray\u0131c\u0131lar\u0131 art\u0131k HTTP sitelerini &#8220;g\u00fcvensiz&#8221; olarak i\u015faretlemekte, bu da kullan\u0131c\u0131lar\u0131n sitenizden uzakla\u015fmas\u0131na neden olabilmektedir. Bu sebeplerden \u00f6t\u00fcr\u00fc, Apache ve Docker gibi modern teknolojileri bir araya getirdi\u011fimizde SSL\/TLS entegrasyonu, basit bir eklenti de\u011fil, temel bir gereklilik haline gelmi\u015ftir. Bu sayede, hem kullan\u0131c\u0131lar\u0131n\u0131z\u0131n g\u00fcvenli\u011fini sa\u011flars\u0131n\u0131z hem de i\u015fletmenizin dijital varl\u0131\u011f\u0131n\u0131 g\u00fc\u00e7lendirirsiniz.<\/p>\n<h2>SSL\/TLS Nedir ve Nas\u0131l \u00c7al\u0131\u015f\u0131r? Temel Kavramlara Giri\u015f<\/h2>\n<p>Web g\u00fcvenli\u011finin temelini olu\u015fturan SSL (Secure Sockets Layer) ve onun g\u00fcncel versiyonu TLS (Transport Layer Security), internet \u00fczerindeki veri ileti\u015fimini \u015fifrelemek i\u00e7in kullan\u0131lan kriptografik protokollerdir. Temel olarak, bir web taray\u0131c\u0131s\u0131 (istemci) ile bir web sunucusu aras\u0131ndaki veri al\u0131\u015fveri\u015fini g\u00fcvenli hale getirirler. Bu protokoller sayesinde, g\u00f6nderilen veriler yetkisiz eri\u015fimden korunur, veri b\u00fct\u00fcnl\u00fc\u011f\u00fc sa\u011flan\u0131r ve sunucunun kimli\u011fi do\u011frulan\u0131r. Bu \u00fc\u00e7 ana prensip, g\u00fcvenli ileti\u015fimin temel ta\u015flar\u0131n\u0131 olu\u015fturur: gizlilik, b\u00fct\u00fcnl\u00fck ve kimlik do\u011frulama.<\/p>\n<p>SSL\/TLS&#8217;nin \u00e7al\u0131\u015fma prensibi, &#8220;el s\u0131k\u0131\u015fma&#8221; (handshake) ad\u0131 verilen bir dizi ad\u0131mla ba\u015flar. Bu s\u00fcre\u00e7te, istemci ve sunucu birbirleriyle \u015fifreleme algoritmalar\u0131, anahtarlar ve sertifikalar hakk\u0131nda anla\u015f\u0131r. \u0130\u015fte bu s\u00fcrecin ana bile\u015fenleri:<\/p>\n<ol>\n<li><strong>Dijital Sertifika (SSL\/TLS Sertifikas\u0131):<\/strong> Bir web sunucusunun kimli\u011fini do\u011frulayan dijital bir belgedir. Bu sertifika, bir Sertifika Yetkilisi (CA &#8211; Certificate Authority) taraf\u0131ndan verilir ve web sitesinin alan ad\u0131n\u0131, sahibini, ortak anahtar\u0131n\u0131 ve sertifikan\u0131n ge\u00e7erlilik s\u00fcresini i\u00e7erir. Taray\u0131c\u0131, sunucuya ba\u011fland\u0131\u011f\u0131nda bu sertifikay\u0131 al\u0131r ve CA&#8217;n\u0131n g\u00fcvenilirli\u011fini kontrol ederek sunucunun kimli\u011fini do\u011frular.<\/li>\n<li><strong>Asimetrik \u015eifreleme (Public-Key Cryptography):<\/strong> SSL\/TLS el s\u0131k\u0131\u015fmas\u0131 s\u0131ras\u0131nda kullan\u0131l\u0131r. Her sunucunun bir ortak (public) ve bir \u00f6zel (private) anahtar\u0131 vard\u0131r. Ortak anahtar sertifika ile birlikte herkese a\u00e7\u0131kt\u0131r ve verileri \u015fifrelemek i\u00e7in kullan\u0131l\u0131r. Sadece ilgili \u00f6zel anahtar ile bu veriler \u00e7\u00f6z\u00fclebilir. Bu, g\u00fcvenli anahtar al\u0131\u015fveri\u015fi i\u00e7in \u00f6nemlidir.<\/li>\n<li><strong>Simetrik \u015eifreleme:<\/strong> El s\u0131k\u0131\u015fma tamamland\u0131ktan ve g\u00fcvenli bir ba\u011flant\u0131 kurulduktan sonra, as\u0131l veri aktar\u0131m\u0131 simetrik \u015fifreleme ile yap\u0131l\u0131r. Simetrik \u015fifreleme, asimetrik \u015fifrelemeden \u00e7ok daha h\u0131zl\u0131d\u0131r ve hem \u015fifreleme hem de \u015fifre \u00e7\u00f6zme i\u00e7in ayn\u0131 anahtar kullan\u0131l\u0131r. Bu anahtar, el s\u0131k\u0131\u015fma s\u0131ras\u0131nda g\u00fcvenli bir \u015fekilde payla\u015f\u0131l\u0131r.<\/li>\n<\/ol>\n<p>Bir web sitesi HTTPS kulland\u0131\u011f\u0131nda, taray\u0131c\u0131n\u0131z adres \u00e7ubu\u011funda genellikle bir kilit simgesi g\u00f6sterir. Bu simgeye t\u0131klayarak sertifika bilgilerini inceleyebilir ve ba\u011flant\u0131n\u0131n g\u00fcvenli olup olmad\u0131\u011f\u0131n\u0131 kontrol edebilirsiniz. \u00d6zellikle Let&#8217;s Encrypt gibi \u00fccretsiz ve otomatikle\u015ftirilebilir sertifika sa\u011flay\u0131c\u0131lar\u0131n ortaya \u00e7\u0131kmas\u0131yla, SSL\/TLS kullan\u0131m\u0131 art\u0131k \u00e7ok daha eri\u015filebilir hale gelmi\u015ftir. Bu durum, web&#8217;in genel g\u00fcvenli\u011fini \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131rm\u0131\u015ft\u0131r.<\/p>\n<div class=\"expert-tip\">Uzman \u0130pucu: Sertifika Yetkilisi (CA) se\u00e7imi \u00f6nemlidir. G\u00fcvenilir ve yayg\u0131n olarak tan\u0131nan bir CA&#8217;dan sertifika almak, taray\u0131c\u0131 uyumlulu\u011fu a\u00e7\u0131s\u0131ndan kritik \u00f6neme sahiptir. Let&#8217;s Encrypt, bu konuda pop\u00fcler ve g\u00fcvenilir bir se\u00e7enektir.<\/div>\n<p>Docker konteynerlerinde SSL\/TLS yap\u0131land\u0131rmas\u0131, temelde geleneksel bir sunucudakiyle ayn\u0131 mant\u0131\u011fa sahiptir, ancak konteynerle\u015fme mimarisi baz\u0131 farkl\u0131l\u0131klar getirir. Sertifikalar\u0131n ve anahtarlar\u0131n konteyner i\u00e7ine nas\u0131l eklenece\u011fi, Apache&#8217;nin nas\u0131l yap\u0131land\u0131r\u0131laca\u011f\u0131 ve konteynerlerin a\u011f ayarlar\u0131, bu entegrasyonun kilit noktalar\u0131d\u0131r. T\u00fcm bu ad\u0131mlar, uygulaman\u0131z\u0131n da\u011f\u0131t\u0131ld\u0131\u011f\u0131 her yerde ayn\u0131 g\u00fcvenlik standartlar\u0131n\u0131 korumas\u0131n\u0131 sa\u011flar. Dolay\u0131s\u0131yla, bu temel kavramlar\u0131 anlamak, ileri d\u00fczey yap\u0131land\u0131rmalar i\u00e7in sa\u011flam bir zemin olu\u015fturur ve olas\u0131 sorunlar\u0131n giderilmesinde size yard\u0131mc\u0131 olur.<\/p>\n<h2>Docker \u0130\u00e7inde Apache ve SSL\/TLS Nas\u0131l Yap\u0131land\u0131r\u0131l\u0131r? Ad\u0131m Ad\u0131m Rehber<\/h2>\n<p>\u015eimdi, Docker konteynerleri kullanarak Apache web sunucunuzu SSL\/TLS ile nas\u0131l g\u00fcvenli hale getirece\u011finizi pratik ad\u0131mlarla inceleyelim. Bu b\u00f6l\u00fcmde, \u00f6nce kendi imzalad\u0131\u011f\u0131n\u0131z (self-signed) bir sertifika ile basit bir kurulum yapacak, ard\u0131ndan Let&#8217;s Encrypt ile ger\u00e7ek, g\u00fcvenilir bir sertifika edinme ve otomatik yenileme s\u00fcrecini ele alaca\u011f\u0131z.<\/p>\n<h3>1. Ad\u0131m: Temel Apache Docker Konfig\u00fcrasyonu<\/h3>\n<p>\u00d6ncelikle, basit bir Apache Dockerfile&#8217;\u0131 olu\u015ftural\u0131m. Bu dosya, Apache imaj\u0131n\u0131 \u00e7ekecek ve gerekli mod\u00fclleri etkinle\u015ftirecektir.<\/p>\n<pre><code>\n# Dockerfile\nFROM httpd:2.4\nRUN apt-get update && apt-get install -y --no-install-recommends \\\n    openssl \\\n    && rm -rf \/var\/lib\/apt\/lists\/*\n\n# SSL mod\u00fcl\u00fcn\u00fc etkinle\u015ftir\nRUN a2enmod ssl\nRUN a2enmod headers\n\n# Varsay\u0131lan Apache yap\u0131land\u0131rmas\u0131n\u0131 \u00fczerine yazmak i\u00e7in\nCOPY .\/apache\/httpd.conf \/usr\/local\/apache2\/conf\/httpd.conf\nCOPY .\/apache\/extra\/httpd-ssl.conf \/usr\/local\/apache2\/conf\/extra\/httpd-ssl.conf\nCOPY .\/apache\/index.html \/usr\/local\/apache2\/htdocs\/index.html\n\nEXPOSE 80 443\n<\/pre>\n<p><\/code><\/p>\n<p>\u015eimdi <code>apache<\/code> dizini alt\u0131nda gerekli yap\u0131land\u0131rma dosyalar\u0131n\u0131 olu\u015ftural\u0131m:<\/p>\n<ul>\n<li><code>apache\/httpd.conf<\/code>: Ana Apache yap\u0131land\u0131rma dosyas\u0131. SSL mod\u00fcl\u00fcn\u00fc ve <code>httpd-ssl.conf<\/code> dosyas\u0131n\u0131 dahil etti\u011finizden emin olun.<\/li>\n<li><code>apache\/extra\/httpd-ssl.conf<\/code>: SSL Virtual Host yap\u0131land\u0131rmas\u0131.<\/li>\n<li><code>apache\/index.html<\/code>: Basit bir test sayfas\u0131.<\/li>\n<\/ul>\n<p><code>apache\/httpd.conf<\/code> i\u00e7inde, SSL mod\u00fcl\u00fcn\u00fcn y\u00fcklendi\u011finden ve <code>httpd-ssl.conf<\/code> dosyas\u0131n\u0131n dahil edildi\u011finden emin olun. Genellikle a\u015fa\u011f\u0131daki sat\u0131rlar\u0131 bulman\u0131z veya eklemeniz gerekir:<\/p>\n<pre><code>\n# apache\/httpd.conf i\u00e7inde\nLoadModule ssl_module modules\/mod_ssl.so\nInclude conf\/extra\/httpd-ssl.conf\n<\/pre>\n<p><\/code><\/p>\n<p>Ayr\u0131ca, <code>DocumentRoot<\/code> gibi temel ayarlar\u0131 ve sunucu ad\u0131n\u0131 da yap\u0131land\u0131rman\u0131z gerekebilir. Varsay\u0131lan Apache yap\u0131land\u0131rmas\u0131n\u0131n \u00fczerine yazmak i\u00e7in <code>httpd.conf<\/code> dosyas\u0131n\u0131 dikkatlice d\u00fczenlemelisiniz.<\/p>\n<h3>2. Ad\u0131m: Kendi \u0130mzal\u0131 Sertifika (Self-Signed Certificate) ile SSL Kurulumu<\/h3>\n<p>Geli\u015ftirme veya test ortamlar\u0131 i\u00e7in kendi imzalad\u0131\u011f\u0131n\u0131z bir sertifika kullanabilirsiniz. Bu sertifikalar taray\u0131c\u0131lar taraf\u0131ndan g\u00fcvenilir olarak kabul edilmez, ancak HTTPS ba\u011flant\u0131s\u0131n\u0131 test etmek i\u00e7in yeterlidir.<\/p>\n<p>Sertifika ve \u00f6zel anahtar dosyalar\u0131n\u0131 olu\u015fturmak i\u00e7in a\u015fa\u011f\u0131daki komutlar\u0131 kullanabilirsiniz:<\/p>\n<pre><code>\nmkdir -p .\/certs\nopenssl req -x509 -nodes -days 365 -newkey rsa:2048 \\\n    -keyout .\/certs\/apache-selfsigned.key \\\n    -out .\/certs\/apache-selfsigned.crt \\\n    -subj \"\/C=TR\/ST=Istanbul\/L=Istanbul\/O=MyOrg\/OU=MyUnit\/CN=localhost\"\n<\/pre>\n<p><\/code><\/p>\n<p>Bu komut, <code>certs<\/code> dizini alt\u0131nda bir \u00f6zel anahtar (<code>apache-selfsigned.key<\/code>) ve bir sertifika (<code>apache-selfsigned.crt<\/code>) olu\u015fturur.<\/p>\n<p>\u015eimdi bu sertifikalar\u0131 kullanmak \u00fczere <code>apache\/extra\/httpd-ssl.conf<\/code> dosyas\u0131n\u0131 yap\u0131land\u0131ral\u0131m:<\/p>\n<pre><code>\n<IfModule ssl_module>\n<VirtualHost _default_:443>\n    DocumentRoot \"\/usr\/local\/apache2\/htdocs\"\n    ServerName localhost:443\n    ErrorLog ${APACHE_LOG_DIR}\/ssl_error.log\n    TransferLog ${APACHE_LOG_DIR}\/ssl_access.log\n\n    SSLEngine on\n    SSLCertificateFile    \"\/usr\/local\/apache2\/conf\/server.crt\"\n    SSLCertificateKeyFile \"\/usr\/local\/apache2\/conf\/server.key\"\n\n    <FilesMatch \"\\.(cgi|shtml|phtml|php)$\">\n        SSLOptions +StdEnvVars\n    <\/FilesMatch>\n    <Directory \"\/usr\/local\/apache2\/cgi-bin\">\n        SSLOptions +StdEnvVars\n    <\/Directory>\n\n    BrowserMatch \"MSIE [2-6]\" \\\n              nokeepalive ssl-unclean-shutdown \\\n              downgrade-1.0 force-response-1.0\n    BrowserMatch \"MSIE [17-9]\" ssl-unclean-shutdown\n<\/VirtualHost>\n<\/IfModule>\n<\/pre>\n<p><\/code><\/p>\n<p><code>Dockerfile<\/code>'da sertifika dosyalar\u0131n\u0131 konteynere kopyalamam\u0131z gerekiyor. Anahtar ve sertifika dosyalar\u0131n\u0131 <code>conf<\/code> dizinine kopyalamak en mant\u0131kl\u0131 yakla\u015f\u0131md\u0131r:<\/p>\n<pre><code>\n# Dockerfile i\u00e7ine ekle\nCOPY .\/certs\/apache-selfsigned.crt \/usr\/local\/apache2\/conf\/server.crt\nCOPY .\/certs\/apache-selfsigned.key \/usr\/local\/apache2\/conf\/server.key\n<\/pre>\n<p><\/code><\/p>\n<p>Son olarak, <code>docker-compose.yml<\/code> dosyam\u0131z\u0131 olu\u015ftural\u0131m. Bu dosya, konteyneri olu\u015fturacak ve portlar\u0131 d\u0131\u015far\u0131ya a\u00e7acakt\u0131r:<\/p>\n<pre><code>\n# docker-compose.yml\nversion: '3.8'\nservices:\n  apache-ssl:\n    build:\n      context: .\n      dockerfile: Dockerfile\n    ports:\n      - \"80:80\"\n      - \"443:443\"\n    volumes:\n      - .\/apache:\/usr\/local\/apache2\/conf\/\n      - .\/certs:\/usr\/local\/apache2\/conf\/certs\n    restart: always\n<\/pre>\n<p><\/code><\/p>\n<p>\u015eimdi projenizi olu\u015fturup \u00e7al\u0131\u015ft\u0131rabilirsiniz:<\/p>\n<pre><code>\ndocker-compose build\ndocker-compose up -d\n<\/pre>\n<p><\/code><\/p>\n<p>Taray\u0131c\u0131n\u0131zda <code>https:\/\/localhost<\/code> adresini ziyaret etti\u011finizde bir g\u00fcvenlik uyar\u0131s\u0131 alacaks\u0131n\u0131z (\u00e7\u00fcnk\u00fc self-signed sertifika), ancak ba\u011flant\u0131 \u015fifrelenmi\u015f olacakt\u0131r. Bu ad\u0131m, SSL'in temel kurulumunu anlaman\u0131z i\u00e7in kritik bir ba\u015flang\u0131\u00e7 noktas\u0131d\u0131r.<\/p>\n<h3>3. Ad\u0131m: Let's Encrypt ve Certbot ile G\u00fcvenilir SSL Sertifikas\u0131 Edinme<\/h3>\n<p>\u00dcretim ortamlar\u0131 i\u00e7in Let's Encrypt gibi bir Sertifika Yetkilisinden (CA) sertifika alman\u0131z gerekir. Certbot, bu s\u00fcreci otomatikle\u015ftiren harika bir ara\u00e7t\u0131r. Docker ortam\u0131nda Certbot'u kullanman\u0131n yayg\u0131n yollar\u0131ndan biri, Certbot'u ayr\u0131 bir konteyner olarak \u00e7al\u0131\u015ft\u0131rmak ve sertifikalar\u0131 Apache konteynerine ba\u011flamakt\u0131r.<\/p>\n<p><strong>Certbot i\u00e7in Ayr\u0131 Bir Konteyner Yap\u0131land\u0131rmas\u0131:<\/strong><\/p>\n<p>\u0130lk olarak, web sitenizin alan ad\u0131n\u0131n d\u0131\u015far\u0131dan eri\u015filebilir oldu\u011fundan ve do\u011fru IP adresine y\u00f6nlendirildi\u011finden emin olun. Certbot, alan ad\u0131n\u0131z\u0131n kontrol\u00fcn\u00fc do\u011frulamak i\u00e7in HTTP-01 challenge y\u00f6ntemini kullanacakt\u0131r.<\/p>\n<p><code>docker-compose.yml<\/code> dosyan\u0131z\u0131 g\u00fcncelleyelim:<\/p>\n<pre><code>\n# docker-compose.yml - Let's Encrypt entegrasyonu\nversion: '3.8'\nservices:\n  apache-ssl:\n    build:\n      context: .\n      dockerfile: Dockerfile\n    ports:\n      - \"80:80\"\n      - \"443:443\"\n    volumes:\n      - .\/apache:\/usr\/local\/apache2\/conf\/\n      # Certbot taraf\u0131ndan olu\u015fturulan sertifikalar\u0131 ba\u011flamak i\u00e7in\n      - .\/certbot\/www:\/var\/www\/certbot\/:ro\n      - .\/certbot\/conf:\/etc\/letsencrypt\/:ro\n    restart: always\n\n  certbot:\n    image: certbot\/certbot\n    volumes:\n      - .\/certbot\/www:\/var\/www\/certbot\/:rw\n      - .\/certbot\/conf:\/etc\/letsencrypt\/:rw\n    command: certonly --webroot --webroot-path=\/var\/www\/certbot --email sizin@emailiniz.com --agree-tos --no-eff-email --staging -d ornekalanadiniz.com -d www.ornekalanadiniz.com\n    # 'staging' flag'ini \u00fcretim i\u00e7in kald\u0131r\u0131n\n    # 'ornekalanadiniz.com' ve 'www.ornekalanadiniz.com' alan adlar\u0131n\u0131z\u0131 girin\n<\/pre>\n<p><\/code><\/p>\n<p>Yukar\u0131daki <code>docker-compose.yml<\/code> dosyas\u0131nda, <code>apache-ssl<\/code> servisi Let's Encrypt'in do\u011frulama i\u00e7in kullanaca\u011f\u0131 <code>.well-known\/acme-challenge<\/code> dizinini Certbot konteyneri ile payla\u015f\u0131yor. <code>.\/certbot\/www<\/code> ve <code>.\/certbot\/conf<\/code> dizinlerini olu\u015fturmay\u0131 unutmay\u0131n.<\/p>\n<p>Apache yap\u0131land\u0131rman\u0131zda (<code>apache\/httpd.conf<\/code>), Certbot'un do\u011frulama dosyalar\u0131na eri\u015febilmesi i\u00e7in 80 numaral\u0131 port \u00fczerinden bir ge\u00e7ici Virtual Host eklemeniz gerekebilir:<\/p>\n<pre><code>\n# apache\/httpd.conf veya ayr\u0131 bir vhost dosyas\u0131\n<VirtualHost *:80>\n    ServerName ornekalanadiniz.com\n    ServerAlias www.ornekalanadiniz.com\n    DocumentRoot \"\/usr\/local\/apache2\/htdocs\"\n\n    Alias \/.well-known\/acme-challenge\/ \"\/var\/www\/certbot\/.well-known\/acme-challenge\/\"\n    <Directory \"\/var\/www\/certbot\/\">\n        AllowOverride None\n        Require all granted\n    <\/Directory>\n\n    # SSL kullanmayan sayfalar\u0131 HTTPS'e y\u00f6nlendirme\n    RewriteEngine On\n    RewriteCond %{HTTPS} off\n    RewriteRule ^(.*)$ https:\/\/%{HTTP_HOST}%{REQUEST_URI} [L,R=301]\n<\/VirtualHost>\n<\/pre>\n<p><\/code><\/p>\n<p><strong>Sertifika Alma \u0130\u015flemi:<\/strong><\/p>\n<ol>\n<li>\u0130lk olarak, Apache konteynerini HTTP \u00fczerinde \u00e7al\u0131\u015f\u0131r durumda tutun (Certbot do\u011frulama i\u00e7in 80. porta ihtiya\u00e7 duyar).<\/li>\n<li><code>docker-compose up -d apache-ssl<\/code> komutu ile Apache'yi ba\u015flat\u0131n.<\/li>\n<li>Ard\u0131ndan, <code>docker-compose run --rm certbot<\/code> komutunu \u00e7al\u0131\u015ft\u0131r\u0131n. Bu komut, Certbot konteynerini ba\u015flatacak ve sertifikalar\u0131 almak i\u00e7in webroot y\u00f6ntemini kullanacakt\u0131r. Sertifikalar <code>.\/certbot\/conf\/live\/ornekalanadiniz.com\/<\/code> dizinine kaydedilecektir.<\/li>\n<li>Sertifikalar\u0131 ald\u0131ktan sonra, <code>apache\/extra\/httpd-ssl.conf<\/code> dosyas\u0131n\u0131 g\u00fcncelleyerek Let's Encrypt sertifikalar\u0131n\u0131z\u0131 kullan\u0131n:<\/li>\n<\/ol>\n<pre><code>\n# apache\/extra\/httpd-ssl.conf\n<IfModule ssl_module>\n<VirtualHost _default_:443>\n    DocumentRoot \"\/usr\/local\/apache2\/htdocs\"\n    ServerName ornekalanadiniz.com:443\n    ServerAlias www.ornekalanadiniz.com:443\n    ErrorLog ${APACHE_LOG_DIR}\/ssl_error.log\n    TransferLog ${APACHE_LOG_DIR}\/ssl_access.log\n\n    SSLEngine on\n    SSLCertificateFile    \"\/etc\/letsencrypt\/live\/ornekalanadiniz.com\/fullchain.pem\"\n    SSLCertificateKeyFile \"\/etc\/letsencrypt\/live\/ornekalanadiniz.com\/privkey.pem\"\n    # SSLCertificateChainFile opsiyonel olabilir, fullchain.pem genellikle bunu i\u00e7erir.\n\n    # G\u00fcvenlik iyile\u015ftirmeleri\n    SSLProtocol all -SSLv2 -SSLv3\n    SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH\n    SSLHonorCipherOrder on\n    Header always set Strict-Transport-Security \"max-age=63072000; includeSubDomains; preload\"\n    Header always set X-Frame-Options DENY\n    Header always set X-Content-Type-Options nosniff\n    Header always set X-XSS-Protection \"1; mode=block\"\n\n    <FilesMatch \"\\.(cgi|shtml|phtml|php)$\">\n        SSLOptions +StdEnvVars\n    <\/FilesMatch>\n    <Directory \"\/usr\/local\/apache2\/cgi-bin\">\n        SSLOptions +StdEnvVars\n    <\/Directory>\n\n<\/VirtualHost>\n<\/IfModule>\n<\/pre>\n<p><\/code><\/p>\n<p>Son olarak, <code>docker-compose up -d<\/code> komutu ile t\u00fcm servisleri yeniden ba\u015flat\u0131n. Art\u0131k web siteniz g\u00fcvenli bir HTTPS ba\u011flant\u0131s\u0131 \u00fczerinden eri\u015filebilir olmal\u0131 ve taray\u0131c\u0131lar taraf\u0131ndan g\u00fcvenli olarak i\u015faretlenmelidir.<\/p>\n<h2>\u0130leri D\u00fczey G\u00fcvenlik ve Performans Optimizasyonlar\u0131<\/h2>\n<p>Apache ve Docker ile SSL\/TLS yap\u0131land\u0131rman\u0131z\u0131 tamamlad\u0131ktan sonra, daha da sa\u011flam bir g\u00fcvenlik duru\u015fu sergilemek ve performans\u0131 art\u0131rmak i\u00e7in baz\u0131 ileri d\u00fczey ayarlamalar yapabilirsiniz. Bu optimizasyonlar, modern web standartlar\u0131na uyum sa\u011flaman\u0131za ve olas\u0131 g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 minimize etmenize yard\u0131mc\u0131 olacakt\u0131r.<\/p>\n<h3>HTTP\/2 Protokol\u00fcn\u00fc Etkinle\u015ftirme<\/h3>\n<p>HTTP\/2, HTTP\/1.1'in yerini alan ve performans iyile\u015ftirmeleri getiren yeni nesil bir web protokol\u00fcd\u00fcr. \u00d6zellikle \u00e7ok say\u0131da k\u00fc\u00e7\u00fck dosya (CSS, JS, resimler) i\u00e7eren sitelerde sayfa y\u00fckleme h\u0131z\u0131n\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131r\u0131r. HTTP\/2, TLS \u00fczerinde \u00e7al\u0131\u015f\u0131r ve bu nedenle HTTPS kullan\u0131m\u0131 zorunludur. Apache'de HTTP\/2'yi etkinle\u015ftirmek i\u00e7in <code>mod_http2<\/code> mod\u00fcl\u00fcn\u00fc kullanmal\u0131s\u0131n\u0131z. <code>Dockerfile<\/code>'\u0131n\u0131zda bu mod\u00fcl\u00fc etkinle\u015ftirdi\u011finizden emin olun:<\/p>\n<pre><code>\n# Dockerfile i\u00e7inde (mod_http2 i\u00e7in)\nRUN a2enmod http2\n<\/pre>\n<p><\/code><\/p>\n<p>Ard\u0131ndan, <code>httpd.conf<\/code> veya <code>httpd-ssl.conf<\/code> dosyan\u0131zda <code>Protocols<\/code> y\u00f6nergesini g\u00fcncelleyerek HTTP\/2'yi etkinle\u015ftirebilirsiniz:<\/p>\n<pre><code>\n# apache\/httpd-ssl.conf veya ilgili vhost i\u00e7inde\nProtocols h2 http\/1.1\n<\/pre>\n<p><\/code><\/p>\n<p>Bu ayar, taray\u0131c\u0131n\u0131n HTTP\/2'yi desteklemesi durumunda bu protokol\u00fc kullanmas\u0131n\u0131 sa\u011flayacakt\u0131r. Aksi takdirde HTTP\/1.1'e geri d\u00f6necektir. HTTP\/2, \u00f6zellikle mobil cihazlarda ve y\u00fcksek gecikmeli a\u011flarda kullan\u0131c\u0131 deneyimini iyile\u015ftirmede b\u00fcy\u00fck rol oynar.<\/p>\n<h3>HSTS (HTTP Strict Transport Security) Uygulamas\u0131<\/h3>\n<p>HSTS, web sunucular\u0131n\u0131n taray\u0131c\u0131lara sadece HTTPS \u00fczerinden eri\u015filmesini emreden bir g\u00fcvenlik mekanizmas\u0131d\u0131r. Bu, taray\u0131c\u0131n\u0131n bir web sitesine HTTP \u00fczerinden eri\u015fme giri\u015fimlerini otomatik olarak HTTPS'e d\u00f6n\u00fc\u015ft\u00fcrmesini sa\u011flar ve potansiyel \"man-in-the-middle\" sald\u0131r\u0131lar\u0131n\u0131 engeller. HSTS'yi Apache'de etkinle\u015ftirmek i\u00e7in <code>mod_headers<\/code> mod\u00fcl\u00fcn\u00fc kullanmal\u0131s\u0131n\u0131z (zaten etkinle\u015ftirmi\u015ftik) ve SSL Virtual Host yap\u0131land\u0131rman\u0131za bir <code>Header<\/code> y\u00f6nergesi eklemelisiniz:<\/p>\n<pre><code>\n# apache\/extra\/httpd-ssl.conf i\u00e7inde\nHeader always set Strict-Transport-Security \"max-age=63072000; includeSubDomains; preload\"\n<\/pre>\n<p><\/code><\/p>\n<ul>\n<li><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 \u00f6nerilir).<\/li>\n<li><code>includeSubDomains<\/code>: Kural\u0131n alt alan adlar\u0131n\u0131 da kapsamas\u0131n\u0131 sa\u011flar.<\/li>\n<li><code>preload<\/code>: Bu iste\u011fe ba\u011fl\u0131 bir anahtar kelimedir. Sitenizi taray\u0131c\u0131lar\u0131n HSTS preload listesine ekletmek isterseniz kullan\u0131l\u0131r. Bu, sitenize ilk kez gelen kullan\u0131c\u0131lar\u0131n bile HSTS korumas\u0131 alt\u0131nda olmas\u0131n\u0131 sa\u011flar. Ancak, bu i\u015flem geri al\u0131namaz oldu\u011fundan dikkatli kullan\u0131lmal\u0131d\u0131r.<\/li>\n<\/ul>\n<h3>OCSP Stapling ve Sertifika Zinciri Optimizasyonu<\/h3>\n<p>OCSP (Online Certificate Status Protocol) Stapling, sunucunun istemciye sertifikas\u0131n\u0131n ge\u00e7erli oldu\u011funu CA'dan ald\u0131\u011f\u0131 imzal\u0131 bir yan\u0131tla bildirmesidir. Bu, taray\u0131c\u0131n\u0131n her defas\u0131nda CA'ya sorgu g\u00f6ndermesine gerek kalmamas\u0131n\u0131 sa\u011flayarak hem performans\u0131 art\u0131r\u0131r hem de kullan\u0131c\u0131n\u0131n gizlili\u011fini korur. Apache'de OCSP Stapling'i etkinle\u015ftirmek i\u00e7in <code>SSLUseStapling on<\/code> ve <code>SSLStaplingCache<\/code> y\u00f6nergelerini kullanman\u0131z gerekir:<\/p>\n<pre><code>\n# apache\/extra\/httpd-ssl.conf veya httpd.conf i\u00e7inde\nSSLUseStapling on\nSSLStaplingCache \"shmcb:\/var\/run\/ocsp(128000)\"\n<\/pre>\n<p><\/code><\/p>\n<p>Ayr\u0131ca, sertifika zincirini optimize etmek, taray\u0131c\u0131lar\u0131n sertifikay\u0131 do\u011frulamak i\u00e7in ihtiya\u00e7 duydu\u011fu t\u00fcm arac\u0131 sertifikalar\u0131 kolayca bulmas\u0131n\u0131 sa\u011flar. Let's Encrypt kullan\u0131yorsan\u0131z, <code>fullchain.pem<\/code> dosyas\u0131 zaten bu zinciri i\u00e7erir. E\u011fer kendi sertifikan\u0131z\u0131 kullan\u0131yorsan\u0131z, t\u00fcm sertifika zincirinin tek bir dosyada veya <code>SSLCertificateChainFile<\/code> y\u00f6nergesinde do\u011fru bir \u015fekilde belirtildi\u011finden emin olun.<\/p>\n<div class=\"expert-tip\">Uzman \u0130pucu: SSL Labs taraf\u0131ndan sunulan SSL Test arac\u0131n\u0131 kullanarak Apache sunucunuzun SSL\/TLS yap\u0131land\u0131rmas\u0131n\u0131 de\u011ferlendirebilir ve potansiyel g\u00fcvenlik zay\u0131fl\u0131klar\u0131n\u0131 tespit edebilirsiniz. A+ derecesini hedefleyin!<\/div>\n<h3>Mobil Uyumlu CSS \u00d6rnekleri (G\u00f6rsel Betimleme)<\/h3>\n<p>Web sitenizin sadece g\u00fcvenli olmakla kalmay\u0131p, ayn\u0131 zamanda her cihazda iyi g\u00f6r\u00fcnmesi de \u00f6nemlidir. \u0130\u015fte modern web tasar\u0131m\u0131 i\u00e7in basit bir mobil uyumlu HTML\/CSS \u00f6rne\u011fi:<\/p>\n<pre><code>\n<!-- index.html -->\n<!DOCTYPE html>\n<html lang=\"tr\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>G\u00fcvenli Apache & Docker<\/title>\n    <style>\n        body {\n            font-family: Arial, sans-serif;\n            margin: 0;\n            padding: 0;\n            background-color: #f4f4f4;\n            color: #333;\n        }\n        .container {\n            width: 80%;\n            margin: 20px auto;\n            padding: 20px;\n            background-color: #fff;\n            box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);\n            border-radius: 8px;\n        }\n        h1 {\n            color: #0056b3;\n            text-align: center;\n        }\n        p {\n            line-height: 1.6;\n            text-align: justify;\n        }\n        .footer {\n            text-align: center;\n            margin-top: 30px;\n            padding-top: 20px;\n            border-top: 1px solid #eee;\n            color: #666;\n        }\n\n        \/* Mobil Cihazlar i\u00e7in Medya Sorgular\u0131 *\/\n        @media (max-width: 768px) {\n            .container {\n                width: 95%;\n                margin: 10px auto;\n                padding: 15px;\n            }\n            h1 {\n                font-size: 1.8em;\n            }\n        }\n\n        @media (max-width: 480px) {\n            h1 {\n                font-size: 1.5em;\n            }\n            p {\n                font-size: 0.9em;\n            }\n        }\n    <\/style>\n<\/head>\n<body>\n    <div class=\"container\">\n        <h1>Docker Ortam\u0131nda G\u00fcvenli Apache Sunucusu<\/h1>\n        <p>Bu sayfa, Docker konteynerleri \u00fczerinde SSL\/TLS ile g\u00fcvenli hale getirilmi\u015f bir Apache sunucusunun ba\u015far\u0131l\u0131 bir \u015fekilde \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 g\u00f6stermektedir. HTTPS ba\u011flant\u0131s\u0131, verilerinizin \u015fifrelendi\u011fi ve g\u00fcvenli bir \u015fekilde iletildi\u011fi anlam\u0131na gelir.<\/p>\n        <p>Daha fazla g\u00fcvenlik ve performans optimizasyonu i\u00e7in HTTP\/2, HSTS ve OCSP Stapling gibi ileri d\u00fczey ayarlar\u0131 yap\u0131land\u0131rmay\u0131 unutmay\u0131n. Bu ad\u0131mlar, kullan\u0131c\u0131lar\u0131n\u0131z i\u00e7in daha iyi bir deneyim sunarken, web sitenizin g\u00fcvenlik duru\u015funu da g\u00fc\u00e7lendirecektir.<\/p>\n        <div class=\"footer\">\n            &copy; 2023 G\u00fcvenli Web \u00c7\u00f6z\u00fcmleri. T\u00fcm Haklar\u0131 Sakl\u0131d\u0131r.\n        <\/div>\n    <\/div>\n<\/body>\n<\/html>\n<\/pre>\n<p><\/code><\/p>\n<p>Bu CSS \u00f6rnekleri, farkl\u0131 ekran boyutlar\u0131na uyum sa\u011flamak i\u00e7in <code>@media<\/code> sorgular\u0131n\u0131 kullan\u0131r. Bu sayede, web siteniz hem masa\u00fcst\u00fc hem de mobil cihazlarda estetik ve i\u015flevsel bir g\u00f6r\u00fcn\u00fcm sergiler. Docker konteynerinde bu <code>index.html<\/code> dosyas\u0131n\u0131 Apache'nin <code>htdocs<\/code> dizinine kopyalayarak test edebilirsiniz.<\/p>\n<h2>Vaka Analizi: B\u00fcy\u00fck \u00d6l\u00e7ekli Bir E-ticaret Sitesinin G\u00fcvenli\u011fe Ge\u00e7i\u015fi<\/h2>\n<p>Bir e-ticaret \u015firketi olan \"TrendSepeti\", y\u0131llard\u0131r b\u00fcy\u00fcyen bir platforma sahipti. Ba\u015flang\u0131\u00e7ta, h\u0131zla b\u00fcy\u00fcmek ve \u00fcr\u00fcn \u00e7e\u015fitlili\u011fini art\u0131rmak \u00f6ncelikli hedefleriydi. Ancak, platformun HTTP \u00fczerinden \u00e7al\u0131\u015fmas\u0131, zamanla hem kullan\u0131c\u0131 g\u00fcvenini sarsmaya ba\u015flam\u0131\u015f hem de Google'\u0131n arama motoru s\u0131ralamalar\u0131nda olumsuz etki yaratm\u0131\u015ft\u0131. \u00d6zellikle kredi kart\u0131 ve ki\u015fisel veri al\u0131\u015fveri\u015fi gibi hassas i\u015flemlerin g\u00fcvensiz bir ortamda yap\u0131lmas\u0131, \u015firketin yasal ve itibar risklerini art\u0131r\u0131yordu. Bir denetim s\u0131ras\u0131nda, g\u00fcvenlik a\u00e7\u0131klar\u0131 nedeniyle ciddi bir risk alt\u0131nda olduklar\u0131 belirtildi.<\/p>\n<p>TrendSepeti'nin mevcut altyap\u0131s\u0131, y\u00fczlerce mikroservis ve her mikroservisin kendi Apache veya Nginx konteynerleri ile Docker Swarm \u00fczerinde \u00e7al\u0131\u015f\u0131yordu. Bu karma\u015f\u0131k yap\u0131da, her bir servise manuel olarak SSL sertifikas\u0131 kurmak ve yenilemek hem zaman al\u0131c\u0131 hem de hataya a\u00e7\u0131k bir s\u00fcre\u00e7ti. Ayr\u0131ca, sertifika yenileme s\u00fcrelerinin unutulmas\u0131, web sitesinin aniden HTTPS eri\u015fimini kaybetmesine ve bu durumun gelir kayb\u0131na yol a\u00e7mas\u0131na neden oluyordu.<\/p>\n<h3>\u00c7\u00f6z\u00fcm: Merkezi Certbot Y\u00f6netimi ve Otomatik Yenileme<\/h3>\n<p>TrendSepeti'nin DevOps ekibi, bu sorunlar\u0131 \u00e7\u00f6zmek i\u00e7in kapsaml\u0131 bir strateji geli\u015ftirdi. Bu stratejinin ana bile\u015fenleri \u015funlard\u0131:<\/p>\n<ol>\n<li><strong>Merkezi Sertifika Y\u00f6netimi:<\/strong> Her bir Apache konteyneri i\u00e7in ayr\u0131 ayr\u0131 sertifika y\u00f6netimi yapmak yerine, Certbot'un DNS-01 challenge \u00f6zelli\u011fini kullanan bir merkezi sistem kurmaya karar verdiler. Bu sayede, t\u00fcm alt alan adlar\u0131 i\u00e7in tek bir yerden joker karakter (wildcard) sertifikalar alabileceklerdi (\u00f6rn. <code>*.trendsepeti.com<\/code>). Bu, yeni mikroservisler eklendi\u011finde sertifika y\u00f6netimini kolayla\u015ft\u0131rd\u0131.<\/li>\n<li><strong>Certbot Konteyner Optimizasyonu:<\/strong> Certbot'u ayr\u0131 bir Docker konteyneri olarak, <code>docker-compose.yml<\/code> i\u00e7inde tan\u0131mlad\u0131lar. Ancak, sertifika alma ve yenileme komutlar\u0131n\u0131 bir cron i\u015fi olarak \u00e7al\u0131\u015ft\u0131ran bir ba\u015fka \"Certbot Yenileme Konteyneri\" olu\u015fturdular. Bu konteyner, belirli aral\u0131klarla (\u00f6rne\u011fin g\u00fcnde iki kez) \u00e7al\u0131\u015facak, mevcut sertifikalar\u0131 kontrol edecek ve s\u00fcresi dolmak \u00fczere olanlar\u0131 otomatik olarak yenileyecekti.<\/li>\n<li><strong>Sertifika Payla\u015f\u0131m\u0131 ve Yeniden Y\u00fckleme:<\/strong> Yenilenen sertifikalar, ana Apache konteynerlerinin ba\u011fland\u0131\u011f\u0131 bir payla\u015f\u0131ml\u0131 Docker Volume'una kaydedildi. Apache konteynerleri, sertifika dosyalar\u0131n\u0131 bu volume'dan okuyacak \u015fekilde yap\u0131land\u0131r\u0131ld\u0131. Sertifikalar her yenilendi\u011finde, Apache konteynerlerine sinyal g\u00f6ndererek (\u00f6rne\u011fin <code>docker kill -s HUP <apache_container_id><\/code> veya bir reverse proxy katman\u0131 arac\u0131l\u0131\u011f\u0131yla) yap\u0131land\u0131rmay\u0131 yeniden y\u00fcklemeleri sa\u011fland\u0131. Bu sayede, kesintisiz bir hizmet sunuldu.<\/li>\n<li><strong>Reverse Proxy ve Y\u00fck Dengeleyici:<\/strong> T\u00fcm gelen trafik, ana Apache konteynerlerinin \u00f6n\u00fcnde duran bir Nginx (veya HAProxy) reverse proxy ve y\u00fck dengeleyici katman\u0131ndan ge\u00e7iyordu. Bu reverse proxy, istemciden gelen HTTPS trafi\u011fini sonland\u0131r\u0131yor ve Apache konteynerlerine HTTP \u00fczerinden iletiyordu (SSL Offloading). Bu kurulum, hem performans\u0131 art\u0131rd\u0131 (Apache \u00fczerindeki \u015fifreleme y\u00fck\u00fcn\u00fc azaltt\u0131) hem de SSL yap\u0131land\u0131rmas\u0131n\u0131n daha merkezi bir noktada y\u00f6netilmesini sa\u011flad\u0131. Ancak bu durumda Apache konteynerine kadar olan i\u00e7 a\u011f trafi\u011finin de g\u00fcvenli\u011fi d\u00fc\u015f\u00fcn\u00fclmelidir.<\/li>\n<li><strong>HSTS ve HTTP\/2 Uygulamas\u0131:<\/strong> T\u00fcm web trafi\u011fi i\u00e7in HSTS ba\u015fl\u0131klar\u0131 ve HTTP\/2 protokol\u00fc etkinle\u015ftirildi. Bu, kullan\u0131c\u0131lar\u0131n daima g\u00fcvenli ve h\u0131zl\u0131 bir ba\u011flant\u0131 \u00fczerinden siteye eri\u015fmesini garantiledi.<\/li>\n<\/ol>\n<p><strong>Sonu\u00e7:<\/strong> TrendSepeti, bu entegre ve otomatikle\u015ftirilmi\u015f g\u00fcvenlik \u00e7\u00f6z\u00fcm\u00fc sayesinde web sitesini tamamen HTTPS'e ge\u00e7irdi. Bu ge\u00e7i\u015fin ard\u0131ndan:<\/p>\n<ul>\n<li>Kullan\u0131c\u0131 g\u00fcveni \u00f6nemli \u00f6l\u00e7\u00fcde artt\u0131 ve bu durum sat\u0131\u015flara pozitif yans\u0131d\u0131.<\/li>\n<li>Arama motoru s\u0131ralamalar\u0131nda belirgin bir iyile\u015fme g\u00f6zlemlendi.<\/li>\n<li>Manuel sertifika y\u00f6netimi hatalar\u0131 ortadan kalkt\u0131 ve DevOps ekibinin i\u015f y\u00fck\u00fc azald\u0131.<\/li>\n<li>Yasal uyumluluk sa\u011fland\u0131 ve potansiyel g\u00fcvenlik riskleri minimize edildi.<\/li>\n<li>HTTP\/2 sayesinde site y\u00fckleme h\u0131zlar\u0131 iyile\u015fti, mobil kullan\u0131c\u0131 deneyimi artt\u0131.<\/li>\n<\/ul>\n<p>Bu vaka analizi, Docker ve Apache gibi teknolojileri kullanarak SSL\/TLS g\u00fcvenli\u011fini b\u00fcy\u00fck \u00f6l\u00e7ekli ve dinamik ortamlarda nas\u0131l etkin bir \u015fekilde uygulayabilece\u011finizi g\u00f6stermektedir. Anahtar nokta, otomasyon, merkezi y\u00f6netim ve g\u00fc\u00e7l\u00fc g\u00fcvenlik standartlar\u0131na ba\u011fl\u0131 kalmakt\u0131r.<\/p>\n<h2>Sonu\u00e7 ve S\u0131k\u00e7a Sorulan Sorular<\/h2>\n<p>G\u00fcn\u00fcm\u00fcz dijital \u00e7a\u011f\u0131nda, web uygulamalar\u0131n\u0131n g\u00fcvenli\u011fi sadece bir se\u00e7enek de\u011fil, temel bir zorunluluktur. Bu makalede, Docker konteynerleri i\u00e7inde \u00e7al\u0131\u015fan Apache web sunucular\u0131n\u0131 SSL\/TLS ile nas\u0131l g\u00fcvenli hale getirebilece\u011finizi ad\u0131m ad\u0131m inceledik. Kendi imzalad\u0131\u011f\u0131n\u0131z sertifikalardan, Let's Encrypt gibi g\u00fcvenilir sertifika otoriteleri arac\u0131l\u0131\u011f\u0131yla otomatik sertifika edinmeye, hatta ileri d\u00fczey g\u00fcvenlik ve performans optimizasyonlar\u0131na kadar geni\u015f bir yelpazeyi kapsayan bilgiler sunduk. G\u00f6rd\u00fc\u011f\u00fcm\u00fcz \u00fczere, HTTPS sadece kullan\u0131c\u0131 verilerinin gizlili\u011fini sa\u011flamakla kalmaz, ayn\u0131 zamanda web sitenizin SEO performans\u0131n\u0131 art\u0131r\u0131r ve kullan\u0131c\u0131lar nezdindeki g\u00fcvenilirli\u011fini peki\u015ftirir. Docker'\u0131n esnek yap\u0131s\u0131 sayesinde, g\u00fcvenlik yap\u0131land\u0131rmalar\u0131n\u0131 kolayca da\u011f\u0131tabilir, y\u00f6netebilir ve otomatikle\u015ftirebiliriz. Unutmay\u0131n, g\u00fcvenlik dinamik bir s\u00fcre\u00e7tir ve s\u00fcrekli dikkat, d\u00fczenli g\u00fcncellemeler ve proaktif \u00f6nlemler gerektirir. Web uygulaman\u0131z\u0131n gelece\u011fini g\u00fcvence alt\u0131na almak i\u00e7in HTTPS'i bir standart olarak benimsemek, ataca\u011f\u0131n\u0131z en \u00f6nemli ad\u0131mlardan biridir.<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular (SSS)<\/h3>\n<div class=\"faq-item\">\n<h4>1. Kendi imzalad\u0131\u011f\u0131m (self-signed) sertifikalar\u0131 \u00fcretimde kullanabilir miyim?<\/h4>\n<p><strong>Cevap:<\/strong> Hay\u0131r, kesinlikle \u00fcretim ortamlar\u0131nda kendi imzalad\u0131\u011f\u0131n\u0131z sertifikalar\u0131 kullanmamal\u0131s\u0131n\u0131z. Taray\u0131c\u0131lar bu sertifikalara g\u00fcvenmez ve kullan\u0131c\u0131lar\u0131n\u0131za g\u00fcvenlik uyar\u0131s\u0131 g\u00f6sterir. Bu durum, kullan\u0131c\u0131 deneyimini olumsuz etkiler ve profesyonel itibar\u0131n\u0131za zarar verir. Kendi imzalad\u0131\u011f\u0131n\u0131z sertifikalar sadece geli\u015ftirme ve test ama\u00e7l\u0131d\u0131r. \u00dcretim i\u00e7in Let's Encrypt gibi g\u00fcvenilir bir Sertifika Yetkilisinden (CA) sertifika almal\u0131s\u0131n\u0131z.<\/p>\n<\/p><\/div>\n<div class=\"faq-item\">\n<h4>2. Let's Encrypt sertifikalar\u0131 ne kadar s\u00fcreyle ge\u00e7erlidir ve nas\u0131l yenilenir?<\/h4>\n<p><strong>Cevap:<\/strong> Let's Encrypt sertifikalar\u0131 90 g\u00fcn s\u00fcreyle ge\u00e7erlidir. Bu k\u0131sa s\u00fcre, g\u00fcvenli\u011fi art\u0131rmak ve bir sertifika tehlikeye at\u0131ld\u0131\u011f\u0131nda etkisini s\u0131n\u0131rlamak i\u00e7indir. Sertifikalar\u0131 yenilemek i\u00e7in Certbot arac\u0131n\u0131 kullanmal\u0131s\u0131n\u0131z. Certbot, s\u00fcresi dolmak \u00fczere olan sertifikalar\u0131 otomatik olarak yenileme yetene\u011fine sahiptir. Docker ortam\u0131nda, Certbot'u bir cron job veya ayr\u0131 bir Docker konteyneri olarak d\u00fczenli aral\u0131klarla \u00e7al\u0131\u015ft\u0131rarak bu yenileme i\u015flemini otomatikle\u015ftirebilirsiniz. Genellikle sertifikalar\u0131n\u0131z\u0131n s\u00fcresi dolmadan 30 g\u00fcn \u00f6nce yenileme i\u015flemini ba\u015flatman\u0131z \u00f6nerilir.<\/p>\n<\/p><\/div>\n<div class=\"faq-item\">\n<h4>3. Docker Compose kullan\u0131rken sertifika ve anahtar dosyalar\u0131n\u0131 nerede saklamal\u0131y\u0131m?<\/h4>\n<p><strong>Cevap:<\/strong> G\u00fcvenlik a\u00e7\u0131s\u0131ndan, sertifika ve \u00f6zel anahtar dosyalar\u0131n\u0131 Docker konteynerinin i\u00e7inde do\u011frudan saklamaktan ka\u00e7\u0131nmal\u0131s\u0131n\u0131z. Bunun yerine, bu dosyalar\u0131 host sisteminizdeki g\u00fcvenli bir dizinde saklay\u0131n ve bunlar\u0131 Docker Compose'daki <code>volumes<\/code> y\u00f6nergesini kullanarak konteynere ba\u011flay\u0131n. \u00d6rne\u011fin, <code>.\/certbot\/conf:\/etc\/letsencrypt\/<\/code> gibi bir ba\u011flama (mount) i\u015flemiyle, hostunuzdaki <code>certbot\/conf<\/code> dizinindeki sertifikalar konteyner i\u00e7indeki <code>\/etc\/letsencrypt\/<\/code> yoluna eri\u015filebilir hale gelir. Bu yakla\u015f\u0131m, hassas dosyalar\u0131n konteyner imaj\u0131na dahil edilmesini engeller ve y\u00f6netimi kolayla\u015ft\u0131r\u0131r.<\/p>\n<\/p><\/div>\n<div class=\"faq-item\">\n<h4>4. HTTP'den HTTPS'ye y\u00f6nlendirme neden \u00f6nemlidir?<\/h4>\n<p><strong>Cevap:<\/strong> HTTP'den HTTPS'ye y\u00f6nlendirme (redirection), web sitenizin t\u00fcm trafi\u011finin g\u00fcvenli bir ba\u011flant\u0131 \u00fczerinden ger\u00e7ekle\u015fmesini sa\u011flamak i\u00e7in kritik \u00f6neme sahiptir. Kullan\u0131c\u0131lar veya eski ba\u011flant\u0131lar yanl\u0131\u015fl\u0131kla sitenize HTTP \u00fczerinden eri\u015fmeye \u00e7al\u0131\u015ft\u0131\u011f\u0131nda, bu y\u00f6nlendirme onlar\u0131 otomatik olarak HTTPS s\u00fcr\u00fcm\u00fcne y\u00f6nlendirir. Bu, hem g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 \u00f6nler (\u00f6rne\u011fin \"man-in-the-middle\" sald\u0131r\u0131lar\u0131) hem de SEO a\u00e7\u0131s\u0131ndan \u00f6nemlidir, \u00e7\u00fcnk\u00fc arama motorlar\u0131 genellikle sitenizin tek bir canonical (standart) URL \u00fczerinden eri\u015filebilir olmas\u0131n\u0131 tercih ederler. Apache'de <code>mod_rewrite<\/code> mod\u00fcl\u00fcn\u00fc kullanarak bu y\u00f6nlendirmeyi kolayca yap\u0131land\u0131rabilirsiniz.<\/p>\n<\/p><\/div>\n<div class=\"faq-item\">\n<h4>5. Apache'de SSL performans\u0131n\u0131 nas\u0131l optimize edebilirim?<\/h4>\n<p><strong>Cevap:<\/strong> Apache'de SSL performans\u0131n\u0131 art\u0131rmak i\u00e7in birka\u00e7 yol vard\u0131r:<\/p>\n<ul>\n<li><strong>OCSP Stapling kullan\u0131n:<\/strong> Bu, taray\u0131c\u0131n\u0131n sertifika ge\u00e7erlili\u011fini kontrol etmek i\u00e7in CA'ya do\u011frudan sorgu g\u00f6ndermesini engelleyerek \"el s\u0131k\u0131\u015fma\" s\u00fcresini k\u0131salt\u0131r.<\/li>\n<li><strong>G\u00fcncel TLS protokollerini ve \u015fifreleme s\u00fcitlerini kullan\u0131n:<\/strong> Eski ve zay\u0131f protokolleri (SSLv2, SSLv3) ve \u015fifreleme s\u00fcitlerini devre d\u0131\u015f\u0131 b\u0131rak\u0131n. Daha h\u0131zl\u0131 ve g\u00fcvenli olanlar\u0131 (\u00f6rne\u011fin AES-GCM ile EECDH\/EDH) tercih edin.<\/li>\n<li><strong>HTTP\/2'yi etkinle\u015ftirin:<\/strong> Bu protokol, birden fazla iste\u011fi ayn\u0131 TCP ba\u011flant\u0131s\u0131 \u00fczerinden paralel olarak g\u00f6ndererek sayfa y\u00fckleme s\u00fcrelerini \u00f6nemli \u00f6l\u00e7\u00fcde iyile\u015ftirir.<\/li>\n<li><strong>SSL oturum \u00f6nbelleklemesini kullan\u0131n:<\/strong> <code>SSLSessionCache<\/code> y\u00f6nergesini kullanarak daha \u00f6nce kurulmu\u015f SSL oturum bilgilerini \u00f6nbellekte saklay\u0131n, b\u00f6ylece tekrarlanan ba\u011flant\u0131lar i\u00e7in \"el s\u0131k\u0131\u015fma\" i\u015flemi h\u0131zlan\u0131r.<\/li>\n<li><strong>Donan\u0131msal SSL h\u0131zland\u0131rma:<\/strong> Y\u00fcksek trafikli sunucular i\u00e7in, \u00f6zel donan\u0131m kartlar\u0131 SSL \u015fifreleme ve \u015fifre \u00e7\u00f6zme i\u015flemlerini CPU'dan alarak performans\u0131 art\u0131rabilir.<\/li>\n<\/ul>\n<\/p><\/div>\n<style>\n        body {\n            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\n            line-height: 1.7;\n            color: #333;\n            max-width: 900px;\n            margin: 20px auto;\n            padding: 20px;\n            background-color: #f9f9f9;\n            border-radius: 8px;\n            box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);\n        }\n        h2 {\n            color: #2c3e50;\n            border-bottom: 2px solid #3498db;\n            padding-bottom: 10px;\n            margin-top: 40px;\n            font-size: 1.8em;\n        }\n        h3 {\n            color: #34495e;\n            margin-top: 30px;\n            font-size: 1.4em;\n        }\n        p {\n            margin-bottom: 1em;\n            text-align: justify;\n        }\n        ul, ol {\n            margin-left: 25px;\n            margin-bottom: 1em;\n        }\n        li {\n            margin-bottom: 0.5em;\n        }\n        pre {\n            background-color: #ecf0f1;\n            padding: 15px;\n            border-radius: 5px;\n            overflow-x: auto;\n            font-family: 'Fira Code', 'Cascadia Code', 'Consolas', monospace;\n            font-size: 0.9em;\n            margin-bottom: 1.5em;\n            border: 1px solid #ddd;\n        }\n        code {\n            font-family: 'Fira Code', 'Cascadia Code', 'Consolas', monospace;\n            background-color: #e0e0e0;\n            padding: 2px 4px;\n            border-radius: 3px;\n            font-size: 0.95em;\n        }\n        .expert-tip {\n            background-color: #e8f5e9; \/* Light green *\/\n            border-left: 5px solid #4caf50; \/* Green *\/\n            padding: 15px;\n            margin: 20px 0;\n            border-radius: 5px;\n            font-style: italic;\n            color: #388e3c;\n        }\n        .faq-item {\n            background-color: #ffffff;\n            border: 1px solid #e0e0e0;\n            padding: 15px;\n            margin-bottom: 15px;\n            border-radius: 5px;\n            box-shadow: 0 1px 3px rgba(0,0,0,0.02);\n        }\n        .faq-item h4 {\n            color: #2980b9;\n            margin-top: 0;\n            margin-bottom: 10px;\n            font-size: 1.1em;\n        }\n        .faq-item p {\n            margin-bottom: 0;\n        }<\/p>\n<p>        \/* Mobile Responsive *\/\n        @media (max-width: 768px) {\n            body {\n                margin: 10px auto;\n                padding: 15px;\n            }\n            h2 {\n                font-size: 1.5em;\n            }\n            h3 {\n                font-size: 1.2em;\n            }\n            pre, code {\n                font-size: 0.85em;\n            }\n        }<\/p>\n<p>        @media (max-width: 480px) {\n            h2 {\n                font-size: 1.3em;\n            }\n            h3 {\n                font-size: 1.1em;\n            }\n            ul, ol {\n                margin-left: 15px;\n            }\n        }\n    <\/style>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Web uygulamalar\u0131n\u0131z\u0131n g\u00fcvenli\u011fini sa\u011flamak g\u00fcn\u00fcm\u00fcz internet d\u00fcnyas\u0131nda vazge\u00e7ilmez bir \u00f6nceliktir. \u00d6zellikle hassas verilerin iletiminde HTTPS kullan\u0131m\u0131, hem kullan\u0131c\u0131&hellip;","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-33784","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>Docker Ortam\u0131nda Apache Web Sunucusunu SSL ile G\u00fcvenli Hale Getirme Rehberi<\/title>\n<meta name=\"description\" content=\"Web uygulamalar\u0131n\u0131z\u0131n g\u00fcvenli\u011fini sa\u011flamak g\u00fcn\u00fcm\u00fcz internet d\u00fcnyas\u0131nda vazge\u00e7ilmez bir \u00f6nceliktir. \u00d6zellikle hassas verilerin iletiminde HTTPS kullan\u0131m\u0131, hem kullan\u0131c\u0131 g\u00fcvenini art\u0131r\u0131r hem de SEO performans\u0131n\u0131z\u0131 olumlu etkiler. Peki, Docker konteynerlerinde \u00e7al\u0131\u015fan bir Apache sunucusunu SSL\/TLS ile nas\u0131l g\u00fcvenli hale getirebiliriz? Bu kapsaml\u0131 rehberde, bu temel g\u00fcvenlik ad\u0131m\u0131n\u0131 ad\u0131m ad\u0131m ele alaca\u011f\u0131z.\" \/>\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\/docker-ortaminda-apache-web-sunucusunu-ssl-ile-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=\"Docker Ortam\u0131nda Apache Web Sunucusunu SSL ile G\u00fcvenli Hale Getirme Rehberi\" \/>\n<meta property=\"og:description\" content=\"Web uygulamalar\u0131n\u0131z\u0131n g\u00fcvenli\u011fini sa\u011flamak g\u00fcn\u00fcm\u00fcz internet d\u00fcnyas\u0131nda vazge\u00e7ilmez bir \u00f6nceliktir. \u00d6zellikle hassas verilerin iletiminde HTTPS kullan\u0131m\u0131, hem kullan\u0131c\u0131 g\u00fcvenini art\u0131r\u0131r hem de SEO performans\u0131n\u0131z\u0131 olumlu etkiler. Peki, Docker konteynerlerinde \u00e7al\u0131\u015fan bir Apache sunucusunu SSL\/TLS ile nas\u0131l g\u00fcvenli hale getirebiliriz? Bu kapsaml\u0131 rehberde, bu temel g\u00fcvenlik ad\u0131m\u0131n\u0131 ad\u0131m ad\u0131m ele alaca\u011f\u0131z.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/docker-ortaminda-apache-web-sunucusunu-ssl-ile-guvenli-hale-getirme-rehberi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-06T22:01:10+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=\"23 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/docker-ortaminda-apache-web-sunucusunu-ssl-ile-guvenli-hale-getirme-rehberi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/docker-ortaminda-apache-web-sunucusunu-ssl-ile-guvenli-hale-getirme-rehberi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Docker Ortam\u0131nda Apache Web Sunucusunu SSL ile G\u00fcvenli Hale Getirme Rehberi\",\"datePublished\":\"2025-11-06T22:01:10+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/docker-ortaminda-apache-web-sunucusunu-ssl-ile-guvenli-hale-getirme-rehberi\/\"},\"wordCount\":3868,\"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\/docker-ortaminda-apache-web-sunucusunu-ssl-ile-guvenli-hale-getirme-rehberi\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/docker-ortaminda-apache-web-sunucusunu-ssl-ile-guvenli-hale-getirme-rehberi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/docker-ortaminda-apache-web-sunucusunu-ssl-ile-guvenli-hale-getirme-rehberi\/\",\"name\":\"Docker Ortam\u0131nda Apache Web Sunucusunu SSL ile G\u00fcvenli Hale Getirme Rehberi\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-11-06T22:01:10+00:00\",\"description\":\"Web uygulamalar\u0131n\u0131z\u0131n g\u00fcvenli\u011fini sa\u011flamak g\u00fcn\u00fcm\u00fcz internet d\u00fcnyas\u0131nda vazge\u00e7ilmez bir \u00f6nceliktir. \u00d6zellikle hassas verilerin iletiminde HTTPS kullan\u0131m\u0131, hem kullan\u0131c\u0131 g\u00fcvenini art\u0131r\u0131r hem de SEO performans\u0131n\u0131z\u0131 olumlu etkiler. Peki, Docker konteynerlerinde \u00e7al\u0131\u015fan bir Apache sunucusunu SSL\/TLS ile nas\u0131l g\u00fcvenli hale getirebiliriz? Bu kapsaml\u0131 rehberde, bu temel g\u00fcvenlik ad\u0131m\u0131n\u0131 ad\u0131m ad\u0131m ele alaca\u011f\u0131z.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/docker-ortaminda-apache-web-sunucusunu-ssl-ile-guvenli-hale-getirme-rehberi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/docker-ortaminda-apache-web-sunucusunu-ssl-ile-guvenli-hale-getirme-rehberi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/docker-ortaminda-apache-web-sunucusunu-ssl-ile-guvenli-hale-getirme-rehberi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Docker Ortam\u0131nda Apache Web Sunucusunu SSL ile 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":"Docker Ortam\u0131nda Apache Web Sunucusunu SSL ile G\u00fcvenli Hale Getirme Rehberi","description":"Web uygulamalar\u0131n\u0131z\u0131n g\u00fcvenli\u011fini sa\u011flamak g\u00fcn\u00fcm\u00fcz internet d\u00fcnyas\u0131nda vazge\u00e7ilmez bir \u00f6nceliktir. \u00d6zellikle hassas verilerin iletiminde HTTPS kullan\u0131m\u0131, hem kullan\u0131c\u0131 g\u00fcvenini art\u0131r\u0131r hem de SEO performans\u0131n\u0131z\u0131 olumlu etkiler. Peki, Docker konteynerlerinde \u00e7al\u0131\u015fan bir Apache sunucusunu SSL\/TLS ile nas\u0131l g\u00fcvenli hale getirebiliriz? Bu kapsaml\u0131 rehberde, bu temel g\u00fcvenlik ad\u0131m\u0131n\u0131 ad\u0131m ad\u0131m ele alaca\u011f\u0131z.","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\/docker-ortaminda-apache-web-sunucusunu-ssl-ile-guvenli-hale-getirme-rehberi\/","og_locale":"tr_TR","og_type":"article","og_title":"Docker Ortam\u0131nda Apache Web Sunucusunu SSL ile G\u00fcvenli Hale Getirme Rehberi","og_description":"Web uygulamalar\u0131n\u0131z\u0131n g\u00fcvenli\u011fini sa\u011flamak g\u00fcn\u00fcm\u00fcz internet d\u00fcnyas\u0131nda vazge\u00e7ilmez bir \u00f6nceliktir. \u00d6zellikle hassas verilerin iletiminde HTTPS kullan\u0131m\u0131, hem kullan\u0131c\u0131 g\u00fcvenini art\u0131r\u0131r hem de SEO performans\u0131n\u0131z\u0131 olumlu etkiler. Peki, Docker konteynerlerinde \u00e7al\u0131\u015fan bir Apache sunucusunu SSL\/TLS ile nas\u0131l g\u00fcvenli hale getirebiliriz? Bu kapsaml\u0131 rehberde, bu temel g\u00fcvenlik ad\u0131m\u0131n\u0131 ad\u0131m ad\u0131m ele alaca\u011f\u0131z.","og_url":"https:\/\/fatihsoysal.com\/blog\/docker-ortaminda-apache-web-sunucusunu-ssl-ile-guvenli-hale-getirme-rehberi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-11-06T22:01:10+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"23 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/docker-ortaminda-apache-web-sunucusunu-ssl-ile-guvenli-hale-getirme-rehberi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/docker-ortaminda-apache-web-sunucusunu-ssl-ile-guvenli-hale-getirme-rehberi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Docker Ortam\u0131nda Apache Web Sunucusunu SSL ile G\u00fcvenli Hale Getirme Rehberi","datePublished":"2025-11-06T22:01:10+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/docker-ortaminda-apache-web-sunucusunu-ssl-ile-guvenli-hale-getirme-rehberi\/"},"wordCount":3868,"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\/docker-ortaminda-apache-web-sunucusunu-ssl-ile-guvenli-hale-getirme-rehberi\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/docker-ortaminda-apache-web-sunucusunu-ssl-ile-guvenli-hale-getirme-rehberi\/","url":"https:\/\/fatihsoysal.com\/blog\/docker-ortaminda-apache-web-sunucusunu-ssl-ile-guvenli-hale-getirme-rehberi\/","name":"Docker Ortam\u0131nda Apache Web Sunucusunu SSL ile G\u00fcvenli Hale Getirme Rehberi","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-11-06T22:01:10+00:00","description":"Web uygulamalar\u0131n\u0131z\u0131n g\u00fcvenli\u011fini sa\u011flamak g\u00fcn\u00fcm\u00fcz internet d\u00fcnyas\u0131nda vazge\u00e7ilmez bir \u00f6nceliktir. \u00d6zellikle hassas verilerin iletiminde HTTPS kullan\u0131m\u0131, hem kullan\u0131c\u0131 g\u00fcvenini art\u0131r\u0131r hem de SEO performans\u0131n\u0131z\u0131 olumlu etkiler. Peki, Docker konteynerlerinde \u00e7al\u0131\u015fan bir Apache sunucusunu SSL\/TLS ile nas\u0131l g\u00fcvenli hale getirebiliriz? Bu kapsaml\u0131 rehberde, bu temel g\u00fcvenlik ad\u0131m\u0131n\u0131 ad\u0131m ad\u0131m ele alaca\u011f\u0131z.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/docker-ortaminda-apache-web-sunucusunu-ssl-ile-guvenli-hale-getirme-rehberi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/docker-ortaminda-apache-web-sunucusunu-ssl-ile-guvenli-hale-getirme-rehberi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/docker-ortaminda-apache-web-sunucusunu-ssl-ile-guvenli-hale-getirme-rehberi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Docker Ortam\u0131nda Apache Web Sunucusunu SSL ile 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\/33784","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=33784"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/33784\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=33784"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=33784"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=33784"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}