SSL sonlandırma ve dengeleyiciler
Kısa özet
SSL/TLS sonlandırması, uygulamalardan kripto yükünü kaldırır ve L7 yönlendirme, WAF, rate-limit, mTLS, kanarya sürümlerine giden yolu açar. Anahtar çözümler: TLS'nin nerede sonlandırılacağı (kenar/giriş/iç kafes), nasıl dengeleneceği (L4 vs L7), hangi şifre profillerinin kullanılacağı, servis dışı kalmadan sertifikaların nasıl güncelleneceği ve SLO'da p95 gecikme ve hataların nasıl tutulacağı.
TLS nerede sonlandırılır
Edge (CDN/Anycast/WAF): minimum kullanıcı gecikmesi, global koruma, önbellek/bot kontrolü. Dahası - arka uca yeniden şifrele.
Giriş L7'de (Nginx/Envoy/HAProxy/ALB): ince URI/başlık yönlendirme, mTLS, JWT doğrulama.
Uçtan uca TLS (passthrough L4): Pod/servisten önce uçtan uca mTLS gerektiğinde (örn. sıkı uyum bölgesi).
Servis Ağı (Envoy/Istio/Linkerd): Otomatik küme içi mTLS, politika ve telemetri.
Uygulama: daha sık - kenar sonlandırma - girmek için yeniden şifreleme; PII/ödemeler için - hizmetten önce mTLS.
L4 vs L7 dengeleme
L4 (TCP/UDP): minimum gecikme, basit sağlık kontrolleri (port/TCP), geçiş TLS. L7 özelliklerinin eksikliği olduğunda TLS'deki gRPC için uygundur.
L7 (HTTP/HTTPS/HTTP3): host/path/header/cookie routing, WAF, rate-limits, canary releases, sticky sessions, retrays/timeout.
TLS: sürümler, anahtarlar, şifreler
Sürümler: TLS 1. 3 her yerde, TLS 1. 2 geri dönüş olarak. 1'i devre dışı bırak. 0/1. 1.
Anahtarlar/setler: ECDSA (P-256) - RSA'dan daha hızlı; Antik için çift yığın (ECDSA + RSA) yapabilirsiniz.
ALPN: 'h2' и 'http/1. 1`; HTTP/3 için - 'h3' (QUIC/UDP).
OCSP Zımbalama: dahil; Halka açık alanlarda HSTS.
Anahtar havuzları: KMS/HSM'de saklanır; Otomatik yenileme (ACME/güven ağacı).
0-RTT (TLS 1. 3): nokta (GET/idempotent) içerir, tekrar oynatma riskini dikkate alır.
Temel şifre profili (TLS 1. 2): 'ECDHE-ECDSA-AES256-GCM-SHA384: ECDHE-ECDSA-CHACHA20-POLY1305: ECDHE-RSA-AES256-GCM-SHA384: ECDHE-RM SA-CHACHA20-POLY1305'
TLS performansı
Devam: oturum biletleri/kimlikler - el sıkışma maliyetini azaltın.
ECDSA +, mobil/AES-NI olmayan cihazlarda yardım ChaCha20.
OCSP Zımbalama + kısa zincirler p95'i azaltır.
HTTP/2/3: çoğullama, daha az bağlantı p95'ten daha az.
Aktarım: kripto için CPU çekirdeklerini sabitleyin, yeniden kullanımı etkinleştirin, soket tamponlarını ayarlayın.
Güvenlik
mTLS: admin/API deyimleri için client-cert gerektirir; İptal için CRL/OCSP.
SNI/ECH: SNI - standart; ECH (Encr. ClientHello) etki alanını gizler (kenar sağlayıcısı destekliyorsa).
Sıkı Taşıma Güvenliği (HSTS): üretim alanları, başlangıçta dikkatli.
Şerbetçiotu arasındaki TLS: DC (Zero-Trust) içinde bile hizmete yeniden şifrele.
Rate-limit/gray-oxen: L7'de api'yi botlardan/kaba kuvvetlerden korur.
Gözlemlenebilirlik ve SLO
SLO (örnekler)
P95 TLS-el sıkışma ≤ 80-120 ms (global), p95 TTFB ≤ 200-300 ms.
TLS (el sıkışma/eşler arası doğrulama) hataları ≤ 0. 1%.
Özgeçmişlerin oranı tekrar ziyaretler için %70 ≥.
Metrikler
'handshake _ time', 'tls _ version', 'alpn', 'cert _ expiry _ days', 'ocsp _ staple _ status'.
L7: 'p50/p95/p99', '5xx', '429', 'upstream _ rq _ time', 'retry _ budget'.
Kapasite: aktif bağlantılar, CPS (saniyede bağlantılar), RPS.
Tipik yapılandırmalar
Nginx (L7 sonlandırma + HTTP/2 + OCSP zımbalama)
nginx server {
listen 443 ssl http2 reuseport;
server_name api.example.com;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:...:ECDHE-RSA-CHACHA20-POLY1305';
ssl_ecdh_curve X25519:P-256;
ssl_certificate /etc/ssl/cert.pem; # полная цепочка ssl_certificate_key /etc/ssl/key.pem;
ssl_stapling on; ssl_stapling_verify on;
ssl_session_cache shared:SSL:50m; ssl_session_timeout 1d;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
location / {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto https;
proxy_pass https://upstream_pool;
}
}
upstream upstream_pool {
zone backends 64k;
server 10.0.1.10:8443 max_fails=3 fail_timeout=10s;
server 10.0.1.11:8443 max_fails=3 fail_timeout=10s;
keepalive 256;
}
HAProxy (L7 sonlandırma + yapışkanlık + mTLS'den arka uca)
haproxy frontend fe_https bind:443 ssl crt /etc/haproxy/certs/ alpn h2,http/1.1 mode http http-response set-header Strict-Transport-Security max-age=31536000 default_backend be_api
backend be_api mode http balance roundrobin cookie SRV insert indirect nocache option httpchk GET /healthz server s1 10.0.1.10:8443 check ssl verify required ca-file /etc/haproxy/ca.pem server s2 10.0.1.11:8443 check ssl verify required ca-file /etc/haproxy/ca.pem
Elçi (L7, müşteri + kanaryadan + mTLS'yi sonlandırır)
yaml static_resources:
listeners:
- name: https address: { socket_address: { address: 0.0.0.0, port_value: 443 } }
filter_chains:
- filters:
- name: envoy.filters.network.http_connection_manager typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager stat_prefix: ingress route_config:
virtual_hosts:
- name: api domains: ["api.example.com"]
routes:
- match: { prefix: "/" }
route:
weighted_clusters:
clusters:
- name: api-stable weight: 95
- name: api-canary weight: 5 http_filters:
- name: envoy.filters.http.router transport_socket:
name: envoy.transport_sockets.tls typed_config:
"@type": type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext common_tls_context:
tls_certificates:
- certificate_chain: { filename: "/etc/tls/cert.pem" }
private_key: { filename: "/etc/tls/key.pem" }
validation_context: # mTLS (опционально)
trusted_ca: { filename: "/etc/tls/ca.pem" }
require_client_certificate: true
AWS ALB/NLB (konsept)
ALB (L7 sonlandırma): HTTPS dinleyici 443 (TLS 1. 2/1. 3), hedef grup HTTPs:8443, sağlık kontrolü'/healthz ', yapışkanlık (çerez).
NLB (L4 passthrough): TLS dinleyicisi 443, TCP sağlık kontrolleri, uçtan uca SNI to pod.
CloudFront/Cloudflare: TLS edge + WAF + Bot yönetimi; Origin - yalnızca HTTPS.
Sertifikaları kesinti olmadan güncelleme
ACME (Let's Encrypt/Private CA) otomatik güncelleme ve sıcak yeniden başlatma ile (Nginx 'yeniden yükleme', Elçi SDS).
Geçişler için çift sertifika (ECDSA + RSA).
Zincir izleme: ara CA'ları kontrol etmek; Rotasyondan sonra OCSP zımbalama.
Uyarılar: 'cert _ expiry _ days <21've' ocsp _ status! = good '.
Sağlık kontrolleri ve yönlendirme
L4: TCP bağlantısı, TLS el sıkışma.
L7: HTTP 200/JSON belirteci sürümü, gRPC sağlığı.
Politikacılar: yük devretme, ağırlıklı, gecikme, yapışkan için tutarlı hash (çerez/IP).
Retrays/timeouts: Süreklilik ve yinelenen istekler arasındaki denge (idempotency!).
Kubernetes-desenleri
Giriş Denetleyicisi (Nginx/Envoy/HAProxy): giriş sonlandırması, DNS kayıtları için 'ExternalDNS', ACME için 'cert-manager'.
Gateway API: kanaryalarla bildirimsel TLSRoute/HTTPRoute.
Servis Kafesi: Otomatik mTLS pod↔pod, 'PeerAuthentication'/' DestinationRule' düzeyindeki ilkeler.
Güvenlik kontrol listesi
- TLS 1. 3 dahil; 1. 0/1. 1 kapalı.
- Modern şifreler; ECDSA, desteğin izin verdiği yerlerde hizmet eder.
- OCSP zımbalama, komple zincirler, HSTS.
- Yöneticiler/ara bağlantılar için mTLS; Müşteri sertlerinin iptali.
- Kenardaki hız limiti/bot filtreleri; slowloris/oversize başlıklara karşı koruma.
- Arka uçlara yeniden şifrele (Zero-Trust).
- KMS/HSM'deki sırlar/anahtarlar; rotasyon ve ihraç denetimi.
Gözlemlenebilirlik ve uyarılar
Метрики: TLS el sıkışmaları/sn, arıza oranı, oturum devam etme oranı, OCSP, p95/99, açık eksler, CPS, RPS.
Günlükleri: SNI/ALPN/TLS sürümü, şifre, istemci sertifikası (mTLS için), upstream kodları, gecikme arıza.
Uyarılar: büyüme '5xx/525', düşüş devam ediyor, 'cert _ expiry _ days', 'ocsp _ failed', aşırı p95, sivri '429'.
Yaygın hatalar
Koruma olmadan kenar ve düz HTTP içe doğru sonlandırılıyor.
Aşırı uzun CA zincirleri - p95 el sıkışmasının büyümesi.
OCSP zımbalama yok - istemcilerde/tarayıcılarda engelleme.
Yük devretmeyi hesaba katmadan yapışkan oturumlar - bozulmuş bir düğümde "yapıştırma".
0-RTT istekleri değiştirmek için etkinleştirildi - yeniden gönderme riski.
Hot-reload sert eksikliği - rotasyon sırasında ikinci damla.
İGaming/fintech için Özgüllük
Zirveler (turnuvalar/maçlar): TLS oturumlarının ısınması (ön bağlantı), kısa zincirler, yüksek oranda yeniden başlama, cepheler için HTTP/2/3.
Ödeme ağ geçitleri/PSP: mTLS, sıkı şifreler/sürümler, sabitlenmiş CA, katı kurallarla ayrı ayrı alanlar/ALB.
Antifraud/bot filtreleri: IP/ASN/cihaz parmak izi, kanarya gri öküzleri (challenge/captcha) tarafından ayrı bir etki alanında L7-rate-limit.
Düzenleyici: HSTS, denetlenmiş TLS günlükleri, sürüm raporları, müşteri sertlerinin olaylar için geri çağrılması.
Mini oyun kitapları
Kanarya L7 dengeleyici ile serbest bırakma
1. %5 ağırlığında bir 'api-kanarya' kümesi ekleyin; 2) p95/hataları izleyin; 3) 5→25→50→100%; 4) bozulma sırasında otomatik kısalma.
Acil durum sertifikası rotasyonu
1. Yeni sertifika/anahtarı indirin; 2) Bağlantıları düşürmeden 'yeniden yükleme' (SDS/hot swap); 3) OCSP kontrolü; 4) pano p95 el sıkışma.
HTTP/3 açmak
1. UDP/443 açın; 2) ALPN 'h3' ekleyin; 3) bireysel QUIC kaybı/RTT metrikleri; 4) Müşteri payına göre A/B.
Sonuç
Etkili SSL sonlandırma, modern bir TLS profili, doğru sonlandırma konumu, akıllı L7 yönlendirmesi, gözlemlenebilirlik ve güçlü güvenlik (mTLS, HSTS, yeniden şifreleme). Her şeyi IaC'ye kilitleyin, rotasyonları otomatikleştirin, p95/hataları ölçün ve kanaryaları kullanın - bu şekilde ön tepeler hayatta kalacak ve tahmin edilebilir şekilde hızlı ve güvenli olacaktır.