סיום SSL ומאזנים
סיכום קצר
סיומת SSL/TLS מסירה את עומס ההצפנה מהיישומים ופותחת את הדרך לניתוב L7, WAF, rate-limit, mTLS, Canary. פתרונות מפתח: היכן לשים סוף ל-TLS (edge/ingress/inside mesh), כיצד לאזן (L4 vi L7), אילו פרופילי צופן להשתמש, כיצד לעדכן תעודות ללא השבתה, וכיצד לשמור על p95 latency ושגיאות ב-SLO.
איפה לסיים את TLS
אדג '(CDN/Anycast/WAF): איחוי משתמש מינימלי, הגנה גלובלית, בקרת מטמון/בוט. עוד - להצפין מחדש לקצה האחורי.
on Ingress L7 (Nginx/Envoy/HAPROXY/ALB): ניתוב URI/כותרת, mTLS, אימות JWT.
TLS מקצה לקצה (passthrough L4): כאשר יש צורך ב-MTLS מקצה לקצה לפני השירות (למשל. אזור ציות קפדני).
Service Mesh (Transloy/Istio/Linkerd): Automated intra-cluster mTLS, policy and telemetry.
תרגול: לעתים קרובות יותר - הקצה מסיים # להצפין מחדש; עבור PII/תשלומים - mTLS לפני השירות.
איזון L4 נגד L7
L4 (TCP/UDP): עיכוב מינימלי, בדיקות בריאות פשוטות (Port/TCP), Passthrough TLS. מתאים ל ־ GRPC ב ־ TLS כאשר קיים מחסור בתכונות L7.
L7 (HTTTP/HTTP3): מארח/path/header/cookie routing, WAF, rate-limits, canary relations, dicky sessions, replay/timeout.
גרסאות, מפתחות, צפנים
גרסאות: TLS 1. 3 בכל מקום, TLS 1. 2 בתור נסיגה. בטל 1. 0/1. 1.
מפתחות/סרטים: ECDSA (P-256) - מהיר יותר מ-RSA; אתה יכול לערום פעמיים (ECDSA + RSA) עבור עתיקות.
'h2' http/1. 1`; עבור HTTP/3 - 'h3' (QUIC/UDP).
סטפלינג OCSP: כולל; HSTS בתחום הציבורי.
בריכות מפתח: מאוחסנות ב ־ KMS/HSM; חידוש אוטומטי (ACME/trust tree).
0-RTT (TLS 1. 3): לכלול נקודה (GET/idempotent), לקחת בחשבון את הסיכון של שידור חוזר.
פרופיל צופן בסיסי (TLS 1. 2) ECDHE-ECDSA-AES256-GCM-SH384: ECDHE-ECDSA-CHACHA20-POLY1305: ECDHE-RSA-A25556-GCM 3884: ECDHE-RSA-CHACHA20-POLY105.205
ביצועי TLS
חידוש: כרטיסי הפעלה/תעודות זהות - להפחית את עלות לחיצת היד.
ECDSA + ChaCha20 עזרה בנייד/לא-AES-NI.
סטפלינג OCSP + שרשראות קצרות להפחית p95.
HTTP/2/3: ריבוי קשרים, פחות קשרים, פחות מ-p95.
הורדה: הצמדת ליבות CPU להצפנה, אפשר שימוש חוזר, מזנוני שקעי מנגינה.
בטיחות
MTLS: דורש לקוח-סרוט עבור הצהרות מנהל/API; CRL/OCSP לביטול.
SNI/ECH: SNI - סטנדרטי; ECH (Encr. מחביא את התחום (אם ספק הקצה תומך בו).
אבטחת תחבורה קפדנית (HSTS): תחום ייצור, בזהירות בהתחלה.
TLS בין אופס: להצפין מחדש לשירות, אפילו בתוך DC (אפס-Trust).
מגבלת קצב/אפור-שוורים: על L7 להגן על אפי מפני בוטים/כוח גס.
יכולת תצפית ו ־ SLO
SLO (דוגמאות)
לחיצת יד P95 TLS-TLS-TLS-handske some 80-120 ms (גלובל), p95 TTFB delage 200-300 ms.
שגיאות TLS (לחיצת יד/אימות עמיתים) בקוטר 0. 1%.
הפרופורציה של קורות חיים של 70% עבור ביקורים חוזרים.
מדדים
”handshake _ time”, ”tls _ version”, ”alpn',” cert _ feating _ days', ”ocsp _ stedle _ status”.
L7: ”p50/p95/p99”, ”5xx”, ”429”, ”upstream _ rq _ time”, ”retry _ budder”.
קיבולת: קשרים פעילים, CPS (חיבורים לשנייה), RPS.
תצורות אופייניות
Nginx (L7 מסיים + HTTP/2 + הידוק OCSP)
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 לסיים + דביקות + 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
שליח (L7 סיים + mTLS מהלקוח + קנרית)
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 (מושג)
מאזין HTTPS 443 (TLS 1. 2/1. 3), HTTPs:8443 קבוצת המטרה, בדיקת בריאות '/בריאות ', דביקות (עוגייה).
NLB (L4 passthrough): מאזין TLS 443, בדיקת בריאות TCP, בדיקת SNI מקצה לקצה.
Cloud Front/Cloudflower: TLS edge + WAF + Bot management; מקור - HTTPS בלבד.
עדכון תעודות ללא השבתה
ACME (בואו להצפין/טוראי CA) עם עדכון אוטומטי ואתחול חם (Nginx 'reload', שליח SDS).
תעודות כפולות (ECDSA + RSA) עבור הגירה.
ניטור שרשרת: בדיקת CAs ביניים; הידוק OCSP לאחר סיבוב.
התראות: 'cert _ experiy _ days <21' ו- 'ocsp _ status! = טוב'.
בדיקות בריאות וניתוב
חיבור TCP, לחיצת יד TLS.
L7: גרסת הסימון 200/JSON HTTP, בריאות gRPC.
פוליטיקאים: כשל, משוקלל, איחור, עקבי-חשיש (עוגייה/IP) לדביק.
מגשים/פסקי זמן: איזון בין התמדה לבקשות כפולות (idempotency!).
תבניות קוברנטות
Ingress Controller (Nginx/Envoy/HAPROXY): סיום כניסה, 'DenDNS' לרישומי DNS, 'cert-manager' עבור ACME.
שער API: הצהרתי TLSROUE/HTTPROUT עם קנריות.
Service Mesh: automatic mTLS pod↔pod, מדיניות ברמת PeerAuthentication '/' Rule '.
רשימת בדיקות בטיחות
[ ] TLS 1. 3 כולל; 1. 0/1. 1 הם כבויים.
[ ] צפנים מודרניים; סריטי ECDSA שבו תמיכה מאפשרת.
[ ] הידוק OCSP, שרשראות שלמות, HSTS.
[ ] mTLS לניהול/חיבור; שלילת מעמדם של סרטים.
[ ] מגבלת קצב/מסנני בוט בקצה; הגנה מפני כותרות איטיות/גדולות מדי.
[ ] להצפין מחדש לגבות (אפס-אמון).
[ ] סודות/מפתחות ב ־ KMS/HSM; סבב וביקורת הוצאה.
יכולת תצפית והתראות
לחיצות ידיים של TLS/second, שיעור כישלון, קצב חידוש הפעלה, OCSP, P95/99, קונוסים פתוחים, CPS, RPS.
יומנים: SNI/ALPN/TLS גרסה, צופן, תעודת לקוח (עבור mTLS), קודים במעלה הזרם, התמוטטות.
התראות: צמיחה "5xx/525", חידוש סתיו, "cert _ experious _ days'," ocsp _ absed ", עודף p95, קוצים" 429 ".
טעויות נפוצות
מסיים בקצה ופשוט HTTP פנימה ללא הגנה.
שרשראות CA ארוכות באופן מוגזם = הגידול בלחיצת יד p95.
אין הידוק OCSP * חסימה על לקוחות/דפדפנים.
פגישות דביקות מבלי לקחת בחשבון כשלים.
0-RTT התאפשר לשינוי בקשות סיכון לביקוש מחדש.
מחסור בסרטוני טעינה מחדש * טיפות שניות במהלך הסיבוב.
פרטים עבור iGaming/fintech
פסגות (טורנירים/גפרורים): חימום הפעלות TLS (טרום חיבור), שרשרות קצרות, פרופורציה גבוהה של חידוש HTTP/2/3 לחזיתות.
שערי תשלום/PSP: mTLS, צופן/גרסאות קפדניות, תקוע CA, תחומים אישיים/ALB עם כללים נוקשים.
מסנני אנטי-פראוד/בוט: L7-rate-limit על ידי IP/ASN/התקן-טביעת אצבע, שוורים אפורים קנריים (אתגר/קפצ 'ה) על תחום נפרד.
רגולציה: HSTS, ביקורות על יומני TLS, דוחות גרסה, החזרת סריטי לקוח לתקריות.
ספרי משחק קטנים
שחרור כנרית באמצעות מאזן L7
1. הוסף אשכול ”אפי-קנרית” במשקל 5%; 2) לצפות לשגיאות p95/; 3) 5→25→50→100%; 4) קיצור אוטומטי בזמן ההשפלה.
סבב תעודות חירום
1. הורד את הסרט/מפתח החדש; 2) ”לטעון מחדש” מבלי להפיל חיבורים (SDS/החלפה חמה); 3) בדיקת OCSP; 4) לחיצת יד לוח מחוונים 95.
מדליק את HTTP/3
1. פתח את UDP/443; 2) להוסיף ALPN 'h3'; 3) אובדן אישי/מדדי RTT; 4) A/B על ידי שיתוף לקוחות.
תוצאות
סיומת SSL אפקטיבית היא פרופיל TLS מודרני, מיקום הסיום הנכון, ניתוב L7 חכם, תצפית ואבטחה חזקה (mTLS, HSTS, הצפנה מחדש). נעל הכל לתוך IC, סיבוב אוטומטי, מדידת p95/שגיאות והשתמש בקנריות - כך החזית תשרוד את הפסגות ותהיה מהירה ובטוחה.