SSL terminasiyası və balanslaşdırma
Qısa xülasə
SSL/TLS terminasiyası kriptovalyutanı tətbiqlərdən çıxarır və L7 marşrutlaşdırma, WAF, rate-limit, mTLS, kanarya buraxılışlarına yol açır. Açar həllər: TLS-i harada tamamlamaq (edge/ingress/mesh daxilində), necə balans etmək (L4 vs L7), hansı şifrə profillərini istifadə etmək, sertifikatları downtime olmadan necə yeniləmək və SLO-da gizlilik və səhvləri necə saxlamaq olar.
TLS tamamlamaq üçün harada
Kənarda (CDN/Anycast/WAF): minimum istifadəçi gizliliyi, qlobal qorunma, cache/bot nəzarəti. Sonrakı - re-encrypt arxa tərəfə.
Ingress L7-də (Nginx/Envoy/HAProxy/ALB): URI/başlıqlar, mTLS, JWT-validasiya.
Keçid TLS (passthrough L4): end-to-end mTLS pod/service (məsələn, ciddi uyğunluq zonası) üçün lazım olduqda.
Service Mesh (Envoy/Istio/Linkerd): klaster, siyasət və telemetriya daxilində avtomatlaşdırılmış mTLS.
Təcrübə: daha çox - ingress üçün edge terminate → re-encrypt; PII/ödənişlər üçün - mTLS servisdən əvvəl.
L4 vs L7 balans
L4 (TCP/UDP): minimum gecikmə, sadə sağlamlıq yoxlamaları (port/TSR), passthrough TLS. L7-fich çatışmazlığı ilə TLS-də gRPC üçün uyğundur.
L7 (HTTP/HTTPS/HTTP3): Ana səhifə/yol/başlıq/cookies, WAF, rate-limits, kanarya buraxılışları, sticky-sessiyalar, retrauslar/taymautlar.
TLS: versiyalar, açarlar, şifrələr
Versiyası: TLS 1. 3 hər yerdə, TLS 1. 2 fallback kimi. 1-i söndürün. 0/1. 1.
Açarlar/açarlar: ECDSA (P-256) - daha sürətli RSA; köhnə üçün ikiqat yığını (ECDSA + RSA) ola bilər.
ALPN: `h2` и `http/1. 1`; HTTP/3 üçün - 'h3' (QUIC/UDP).
OCSP Stapling: daxil; HSTS ictimai domenlərdə.
Açar hovuzları: KMS/HSM-də saxlama; avtomatik yeniləmə (ASME/güvən ağacı).
0-RTT (TLS 1. 3): nöqtə (GET/idempotent) daxil, replay riskini nəzərə almaq.
Əsas şifrə profili (TLS 1. 2): `ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-CHACHA20-POLY1305`
TLS performansı
Resumption: session tickets/IDs - handshake dəyərini azaldır.
ECDSA + ChaCha20 mobil/AES-NI olmadan kömək edir.
OCSP Stapling + qısa zəncirlər p95 azaldır.
HTTP/2/3: multiplexing, az birləşmələr → p95 altında.
Offload: crypto altında pin CPU nüvələri, reuseport, tune socket bufers daxil.
Təhlükəsizlik
mTLS: administratorlar/API operatorları üçün client-cert tələb; CRL/OCSP geri çağırmaq üçün.
SNI/ECH: SNI - standart; ECH (Encr. ClientHello) domenini gizlədir (əgər edge provayderi dəstəkləyirsə).
Strict Transport Security (HSTS): Prod-domenlər, başlanğıcda ehtiyatla.
Hop-lar arasında TLS: servisdən əvvəl, hətta DC (Zero-Trust) daxilində re-encrypt.
Rate-limit/grey-öküzlər: L7 api bot/brutforsa qarşı qoruyur.
Müşahidə və SLO
SLO (nümunələr)
p95 TLS-handshake ≤ 80-120 ms (qlobal), p95 TTFB ≤ 200-300 ms.
TLS səhvləri (handshake/peer-verify) ≤ 0. 1%.
Təkrar səfərlər üçün ≥ payı 70% -dir.
Metrika
`handshake_time`, `tls_version`, `alpn`, `cert_expiry_days`, `ocsp_staple_status`.
L7: `p50/p95/p99`, `5xx`, `429`, `upstream_rq_time`, `retry_budget`.
Capacity: aktiv konnektlər, CPS (connections per second), RPS.
Tipik konfiqlər
Nginx (L7 terminate + HTTP/2 + OCSP stapling)
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 terminate + stickiness + mTLS)
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
Envoy (L7 terminate + mTLS müştəri + kanarya)
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 (konsepsiya)
ALB (L7 terminate): HTTPS listener 443 (TLS 1. 2/1. 3), target group HTTPs:8443, health-check `/healthz`, stickiness (cookie).
NLB (L4 passthrough): TLS listener 443, TCP health-checks, keçid SNI pod.
CloudFront/Cloudflare: TLS edge + WAF + Bot-menecment; origin — HTTPS only.
Downtime olmadan sertifikatların yenilənməsi
ACME (Let 's Encrypt/Private CA) avtomatik yeniləmə və isti yenidən başlatma ilə (Nginx 'reload', Envoy SDS).
Miqrasiya zamanı ikili sertifikatlar (ECDSA + RSA).
Zəncir nəzarəti: aralıq CA yoxlama; OCSP rotasiya sonra stapling.
Alertlər: 'cert _ expiry _ days <21' və 'ocsp _ status! = good'.
Health-checks və marşrutlaşdırma
L4: TCP connect, TLS handshake.
L7: HTTP 200/JSON-marker versiyası, gRPC sağlamlıq.
Siyasətlər: failover, weighted, latency, sticky üçün consistent-hash (cookie/IP).
Retrailer/Taymautlar: Davamlı və təkrarlanan sorğular arasında balans (idempotentlik!).
Kubernetes-patternlər
Ingress Controller (Nginx/Envoy/HAProxy): ingress terminasiyası, DNS qeydləri üçün 'ExternalDNS', ACME üçün 'cert-manager'.
Gateway API: kanaryalar ilə TLSRoute/HTTPRoute deklarativ.
Service Mesh: avtomatik mTLS pod pod, «PeerAuthentication »/« DestinationRule» səviyyəsində siyasətlər.
Təhlükəsizlik yoxlama siyahısı
- TLS 1. 3 daxil; 1. 0/1. 1 bağlı.
- Müasir şifrələr; ECDSA-serta dəstək imkan verir.
- OCSP stapling, tam zəncir, HSTS.
- Adminks/interkonnektlər üçün mTLS; müştəri sertifikatlarının revokasiyası.
- Kənarda Rate-limit/bot filtrləri; slowloris/oversized headers qarşı müdafiə.
- Re-encrypt (Zero-Trust).
- KMS/HSM sirləri/açarları; rotasiya və emissiya auditi.
Müşahidə və alertlər
Метрики: TLS handshakes/sec, failure rate, session resumption rate, OCSP, p95/99, open conns, CPS, RPS.
Qeydlər: SNI/ALPN/TLS versiyası, cipher, müştəri sertifikatı (mTLS üçün), upstream kodları, latency breakdown.
Alertlər: '5xx/525', resumption düşməsi, 'cert _ expiry _ days', 'ocsp _ failed', p95 aşması, '429' sıçramaları.
Tipik səhvlər
Kənarda terminasiya və qorunmadan içəridə HTTP plain.
Həddindən artıq uzun CA zəncirləri → böyümə p95 handshake.
Müştərilər/brauzerlərdə OCSP stapling → kilidləmə yoxdur.
Sticky-seanslar nəzərə alınmadan failover → deqradasiya qovşağında «yapışma».
0-RTT sorğular üçün aktivdir → təkrar təqdim riski.
Rotasiya zamanı hot-reload sertlərinin → saniyəlik damarların olmaması.
iGaming/Fintech üçün xüsusiyyətlər
Zirvələr (turnirlər/matçlar): TLS-sessiyaların istiləşməsi (pre-connect), qısa zəncirlər, yüksək resumption payı, cəbhələr üçün HTTP/2/3.
Ödəniş şlüzləri/PSP: mTLS, sərt ciphers/versiyalar, pinned CA, sərt qaydalarla fərdi domenlər/ALB.
Antifrod/bot filtrləri: IP/ASN/device-fingerprint L7-rate-limit, ayrı bir domendə kanarya boz öküzlər (challenge/kapça).
Tənzimləyici: HSTS, audit TLS parametrləri jurnalları, versiya hesabatları, hadisələrin müştəri sertifikatlarının geri çağırılması.
Mini playbuklar
L7 Balanslayıcı vasitəsilə Kanarya Release
1. 5% ağırlığında 'api-canary' klasterini əlavə edin; 2) p95/səhvləri izləyin; 3) 5→25→50→100%; 4) deqradasiya zamanı avtomatik çevirmə.
Sertifikatın təcili rotasiyası
1. Yeni cert/key yükləyin; 2) 'reload' düşmədən konektlər (SDS/isti əvəz); 3) OCSP yoxlama; 4) dashboard p95 handshake.
HTTP/3 daxil
1. UDP/443 açın; 2) ALPN 'h3' əlavə edin; 3) QUIC loss/RTT fərdi metrlər; 4) Müştərilərin payı üzrə A/B.
Yekun
Effektiv SSL terminasiyası müasir TLS profili, düzgün tamamlanma yeri, ağıllı L7 marşrutu, müşahidə və ciddi təhlükəsizlikdir (mTLS, HSTS, re-encrypt). IaC-də hər şeyi düzəldin, rotasiyaları avtomatlaşdırın, p95/səhvləri ölçün və kanaryalardan istifadə edin - beləliklə cəbhə zirvələrdən sağ çıxacaq və proqnozlaşdırıla bilən sürətli və təhlükəsiz olacaq.