Mert Özen Her Satırda Daha İleri

Blog

Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.

Seriler
120 yazı bulundu
Certificate'ları İzlemek ve Kesintileri Önlemek: Envanter, Expiry Alert'leri, TLS Testleri ve Gerçek Olay Örnekleri
DevOps SERİ 08

Certificate'ları İzlemek ve Kesintileri Önlemek: Envanter, Expiry Alert'leri, TLS Testleri ve Gerçek Olay Örnekleri

Certificate kesintilerini önlemek için diskteki dosyayı değil, istemcinin gördüğü certificate'ı dışarıdan ölçersin: blackbox exporter'ın last_chain metric'ine ömre göre eşikli bir alarm, probe_success alarmı, CT log ve CAA ile envanter. Reload edilmemiş yenilemeyi, eksik intermediate'ı, yanlış SAN'ı, earliest_cert_expiry'yi yanıltan cross certificate'ı ve saat kaymasını laboratuvarda üretiyor, alarmları promtool ile, TLS config'ini testssl.sh ile test ediyoruz.

14 Kas 2026 15 dk 4
mTLS ve Internal Certificate'lar: ASP.NET Core'da Client Certificate Authentication ve Kendi CA'nı İşletmek
DevOps SERİ 07

mTLS ve Internal Certificate'lar: ASP.NET Core'da Client Certificate Authentication ve Kendi CA'nı İşletmek

mTLS'te istemci de bir certificate ve private key ile attığı imzayla kimliğini kanıtlar; public CA'lar client authentication EKU'sunu bıraktığı için bunun için offline root'lu kendi internal CA'n gerekir. ASP.NET Core'da AddCertificate ile CustomRootTrust, issuer ve CN tabanlı partner eşlemesi kuruyor, Kestrel'in TLS katmanındaki sessiz reddini, revocation'ı ve Nginx'in certificate'ı header ile iletmesinin private key olmadan nasıl taklit edilebildiğini gerçek koşularla görüyoruz.

14 Kas 2026 14 dk 5
HTTPS'i Zorunlu Kılmak: HTTP→HTTPS Redirect, HSTS'i Kademeli Açmak, Preload ve Mixed Content
DevOps SERİ 06

HTTPS'i Zorunlu Kılmak: HTTP→HTTPS Redirect, HSTS'i Kademeli Açmak, Preload ve Mixed Content

HTTPS'i zorunlu kılmak için redirect'i TLS'in bittiği katmanda yaparsın, API'lerde redirect yerine HTTP'yi 400 ile reddedersin ve HSTS'i 5 dakikadan bir yıla kademeli açarsın; includeSubDomains'ten önce alt domain envanteri şart. Proxy arkasında UseHttpsRedirection döngüsünü ve secure'suz cookie'yi, 301'in POST'u GET'e çevirmesini, HSTS'in HTTP-only alt domain'i kilitlemesini ve Angular build'indeki mutlak http:// URL'in mixed content olarak bloklanmasını gerçek koşularla görüyoruz.

14 Kas 2026 16 dk 5
Yönetilen Platformlarda Certificate: Caddy, Azure App Service, Key Vault, Front Door ve Kubernetes'te cert-manager
DevOps SERİ 05

Yönetilen Platformlarda Certificate: Caddy, Azure App Service, Key Vault, Front Door ve Kubernetes'te cert-manager

Managed platformlarda certificate'ı platform alır ve yeniler, ama her birinin seni yakalayacak bir sınırı vardır: Caddy /data volume'ü olmadan rate limit'e takılır, App Service managed certificate wildcard vermez, Front Door doğrudan CNAME ister, cert-manager her yenilemede key'i değiştirir. Caddy, cert-manager ve Envoy Gateway'i Pebble ile gerçek koşularla çalıştırıp pinning'in yenilemede nasıl kırıldığını görüyoruz.

14 Kas 2026 17 dk 5
.NET'te ve Kestrel'de Certificate: dev-certs, PEM/PFX Yükleme, SNI, Yenilemede Reload ve HttpClient Doğrulaması
DevOps SERİ 04

.NET'te ve Kestrel'de Certificate: dev-certs, PEM/PFX Yükleme, SNI, Yenilemede Reload ve HttpClient Doğrulaması

Kestrel, configuration'daki PEM veya PFX certificate'ını restart'sız yeniden yükler ama yalnızca Path'i izler, yaklaşık beş saniyede fark eder ve endpoint'i yeniden başlatır; root olmayan kullanıcıyla Certbot'un dosyalarını okuyamaz, bu yüzden bir deploy hook gerekir. dev-certs'in Linux'taki SSL_CERT_DIR ayarını, ServerCertificateSelector ile SNI'ı ve HttpClient'ta doğrulamayı kapatmadan CustomRootTrust ile internal CA'ya güvenmeyi gerçek koşularla görüyoruz.

14 Kas 2026 15 dk 6
Let's Encrypt ve ACME ile Otomatik Certificate: Certbot, Nginx, Wildcard ve ARI ile Yenileme
DevOps SERİ 03

Let's Encrypt ve ACME ile Otomatik Certificate: Certbot, Nginx, Wildcard ve ARI ile Yenileme

ACME ile certificate almak account, order, authorization, challenge ve finalize adımlarından oluşur; Certbot bunu Nginx'te webroot veya nginx plugin'iyle, wildcard'ı DNS-01 ile yapar ve ARI sayesinde CA'nın önerdiği zamanda yeniler. Pebble üzerinde gerçek koşularla iptal edilen bir certificate'ın ARI ile kendiliğinden yenilenmesini, profilleri, 6 günlük ve IP certificate'larını ve 80 portunu kapatmanın bedelini görüyoruz.

14 Kas 2026 18 dk 5
Certificate Yaşam Döngüsü: CSR, Domain Validation, Certificate Transparency, Revocation ve 47 Günlük Gelecek
DevOps SERİ 02

Certificate Yaşam Döngüsü: CSR, Domain Validation, Certificate Transparency, Revocation ve 47 Günlük Gelecek

Bir certificate CSR ile istenir, CA domain'i HTTP-01, DNS-01 veya TLS-ALPN-01 ile doğrular, certificate CT log'larına yazılır ve iptali artık OCSP'den çok CRL'e ve kısa ömre dayanır. SC-081v3 ile maksimum ömür 15 Mart 2026'da 200, 2027'de 100, 2029'da 47 güne iniyor; crt.sh, gerçek bir CRL ve .NET ile CSR üretimi üzerinden elle yenilemenin neden bittiğini görüyoruz.

14 Kas 2026 13 dk 5
Bir TLS Certificate'ın İçinde Ne Var? X.509, SAN, Chain of Trust ve Dosya Formatları
DevOps SERİ 01

Bir TLS Certificate'ın İçinde Ne Var? X.509, SAN, Chain of Trust ve Dosya Formatları

Bir TLS certificate'ı, bir public key'i SAN listesindeki isimlere bağlayan ve bir CA'nın imzaladığı X.509 belgesidir; istemci ona, imzalar zinciri trust store'undaki bir root'a ulaştığı için güvenir. openssl ve .NET X509CertificateLoader ile alanları okuyor, wildcard'ın tek seviyelik sınırını, Let's Encrypt'in cross-sign'lı Generation Y zincirini ve eksik intermediate'ın curl'ü kırıp .NET'te AIA ile nasıl gizlendiğini gerçek koşularla görüyoruz.

14 Kas 2026 16 dk 3
Edge'de Güvenlik: WAF, DDoS Koruması, Rate Limiting, Bot Yönetimi ve Origin'i Kilitlemek
DevOps SERİ 07

Edge'de Güvenlik: WAF, DDoS Koruması, Rate Limiting, Bot Yönetimi ve Origin'i Kilitlemek

Edge'deki WAF, DDoS koruması, rate limit ve bot kuralları yalnızca edge'den geçen trafiği görür; origin'in IP'si sızarsa hepsi atlanır, bu yüzden origin yalnızca CDN'den gelen bağlantıları kabul etmeli. Nginx'li bir edge'de login rate limit'inin saldırıyı origin'e ulaşmadan durdurduğunu, ASP.NET Core rate limiter'ında forwarded header sırasının müşterileri nasıl koruduğunu ve IP allowlist'in neden Authenticated Origin Pulls, tunnel veya X-Azure-FDID ile tamamlanması gerektiğini görüyoruz.

14 Kas 2026 14 dk 1
Cloudflare ile Bookstore'u Yayına Almak: Proxy, SSL/TLS Modları, Cache Rules ve Gerçek Client IP
DevOps SERİ 06

Cloudflare ile Bookstore'u Yayına Almak: Proxy, SSL/TLS Modları, Cache Rules ve Gerçek Client IP

Cloudflare'e geçerken nameserver'ı taşır, web kayıtlarını proxied, mail kayıtlarını DNS-only bırakır, SSL/TLS modu olarak Full (strict) seçer, Page Rules yerine Cache ve Redirect Rules yazar ve origin'de CF-Connecting-IP'ye yalnızca Cloudflare'in IP aralıklarından gelen bağlantılarda güvenirsin. Laboratuvarda Flexible modun ürettiği redirect döngüsünü, ASP.NET Core'da KnownIPNetworks ile sahte header'ları reddeden testleri ve Azure Front Door karşılıklarını görüyoruz.

14 Kas 2026 13 dk 1
CDN Nasıl Çalışır? Edge, Origin, Cache Key, s-maxage ve Angular + API için Doğru Cache Stratejisi
DevOps SERİ 05

CDN Nasıl Çalışır? Edge, Origin, Cache Key, s-maxage ve Angular + API için Doğru Cache Stratejisi

Bir CDN, cevabı cache key'e göre edge'de saklar ve origin'in header'larına uyar; bu yüzden hash'li Angular dosyalarına immutable, index.html'e no-cache, katalog API'sine s-maxage ve CDN-Cache-Control, kişiye özel cevaplara private, no-store verilir. Nginx ile kurduğumuz bir edge'de public header'ın Grace'e Ada'nın siparişlerini gösterdiğini, query string'siz cache key'in sayfaları karıştırdığını ve stale yönergelerinin origin çökükken siteyi nasıl ayakta tuttuğunu gerçek isteklerle görüyoruz.

14 Kas 2026 14 dk 1
DNS Değişikliğini Kesintisiz Yapmak: TTL Stratejisi, Nameserver Taşıma, DNSSEC ve DNS as Code
DevOps SERİ 04

DNS Değişikliğini Kesintisiz Yapmak: TTL Stratejisi, Nameserver Taşıma, DNSSEC ve DNS as Code

DNS'te propagation yoktur, resolver cache'i vardır: bir değişikliği kesintisiz yapmak için TTL'i en az eski TTL kadar önce düşürür, değişikliği yapar, eski hedefi log'lar sessizleşene kadar açık tutarsın. Laboratuvarda resolver cache'ini ve negative caching'i saniye saniye izliyor, DNSSEC açıkken sağlayıcı değiştirip eski DS yüzünden SERVFAIL alıyor, güvensiz ve multi-signer geçişi karşılaştırıyor ve zone'u DNSControl ile kod olarak yönetiyoruz.

14 Kas 2026 15 dk 1
Blog Haritası