GH GambleHub

SSL終端和平衡器

簡短的摘要

SSL/TLS終端消除了應用程序中的加密負載,並打開了通往L7路由,WAF,rate-limit,mTLS和金絲雀版本的路徑。關鍵解決方案:在何處完成TLS (edge/ingress/mesh)、如何平衡(L4 vs L7)、使用哪些密碼配置文件、如何更新非中心狀態證書以及如何在SLO中保持p95潛伏和錯誤。


在何處完成TLS

邊緣(CDN/Anycast/WAF):用戶的最低潛伏率,全局保護,kesh/bot控制。接下來是re-encrypt到後端。
在ingress L7 (Nginx/Envoy/HAProxy/ALB):通過URI/標頭、 mTLS、JWT驗證進行精細路由。
端到端TLS (passthrough L4):何時需要端到端mTLS到pod/服務(例如嚴格的合規區)。
服務Mesh (Envoy/Istio/Linkerd):群集、策略和遙測中的自動mTLS。

練習:更常見的是-邊緣終端→ re-encrypt到ingress;PII/付款-服務前的mTLS。


L4 vs L7平衡

L4 (TCP/UDP):最小延遲、簡單健康檢查(端口/TSR), passthrough TLS。適用於TLS上的gRPC,缺少L7-fich。
L7 (HTTP/HTTPS/HTTP3): 通過主機/路由/標題/Cookie、WAF、rate-limits、金絲雀發行版、粘貼會話、retrai/taymout進行路由。


TLS: 版本、密鑰、密碼

版本: TLS 1。3無處不在,TLS 1。2作為後衛。禁用1。0/1.1.

密鑰:ECDSA (P-256)-比RSA更快;可以使用雙堆棧(ECDSA+RSA)。
ALPN: `h2` и `http/1.1`;HTTP/3是「h3」(QUIC/UDP)。
OCSP Stapling:包括;HSTS在公共領域。
密鑰池:存儲在KMS/HSM中;自動擴展(ASME/信任樹)。
0-RTT (TLS 1.3):點啟用(GET/偶數),考慮重播風險。

基本密碼配置文件(TLS 1。2): `ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-CHACHA20-POLY1305`


TLS性能

Resumption: session tickets/ID-降低手搖成本。
ECDSA+ChaCha20在移動/非AES-NI上提供幫助。
OCSP Stapling+短鏈減少p95。
HTTP/2/3:多路復用,連接較少→低於p95。
Offload: pin CPU內核在crypto下,包括reuseport, tune socket緩沖區。


安全性

mTLS:需要adminok/API操作員的客戶端證書;CRL/OCSP召回。
SNI/ECH:SNI是標準;ECH (Encr.ClientHello)隱藏域(如果支持edge提供程序)。
嚴格運輸安全(HSTS): prod域,起步時要小心。
hop-ami之間的TLS: re-encrypt到服務,甚至在DC (Zero-Trust)內。
Rate-limit/Grey-wols:在L7上保護api免受機器人/野蠻人的攻擊。


可觀察性和SLO

SLO(示例)

p95 TLS-handshake ≤ 80-120 ms(全球),p95 TTFB ≤ 200-300 ms。

TLS錯誤(手動/同行驗證)≤ 0。1%.

回訪的回程率≥ 70%。

度量標準

`handshake_time`, `tls_version`, `alpn`, `cert_expiry_days`, `ocsp_staple_status`.

L7: `p50/p95/p99`, `5xx`, `429`, `upstream_rq_time`, `retry_budget`.

能力:有源連接器,CPS(每秒連接),RPS。


典型的configi

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終端+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終端+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(概念)

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健康檢查,端到端SNI到pod。

CloudFront/Cloudflare: TLS邊緣+WAF+博特管理;origin — HTTPS only.


無市區證書更新

ACME(Let's Encrypt/私人 CA)具有自動升級和熱重新啟動(Nginx 「reload」,Envoy SDS)。
遷移時雙證書(ECDSA+RSA)。
鏈控制:檢查中間CA;輪換後的OCSP穩定。
Alerts: 'cert_expiry_days <21'和'ocsp_status!=good'。


健康檢查和路由

L4: TCP connect, TLS handshake.

L7:HTTP 200/JSON標記版本,gRPC健康。
策略:failover, weighted, latency, consistent-hash (cookie/IP) for sticky。
Retrai/Taymauts:穩定性和重復查詢之間的平衡(相等!)。


Kubernetes模式

Ingress控制器(Nginx/Envoy/HAProxy):ingress終端,DNS記錄的「ExternalDNS」,ACME的「證書管理器」。
網關API:帶有金絲雀的聲明性TLSRoute/HTTPRoute。
服務Mesh:自動mTLS pod↔pod,「PeerAuthentication」/「DestinationRule」級別的策略。


安全支票單

[] TLS 1.3包括在內;1.0/1.1個關閉。
  • 現代密碼;ECDSA在支持允許的地方。
  • OCSP stapling,完整的鏈,HSTS。
  • 海軍上將/互連的mTLS;重溫客戶服務。
  • 邊緣的極限/機器人過濾器;slowloris/oversized頭保護。
  • Re-encrypt到後端(Zero-Trust)。
  • KMS/HSM中的秘密/密鑰;發行輪換和審計。

可觀察性和Alerta

Метрики: TLS handshakes/sec, failure rate, session resumption rate, OCSP, p95/99, open conns, CPS, RPS.

Logs:SNI/ALPN/TLS版本,cipher,客戶端證書(適用於mTLS),上遊代碼,後期中斷。
Alerts:「5xx/525」的增長,恢復的下降,「cert_expiry_days」,「ocsp_failed」,超過p95,尖峰為「429」。


典型的錯誤

在沒有保護的情況下終止邊緣和HTTP平原。
CA鏈條過長→ p95手搖上升。
在客戶端/瀏覽器上沒有OCSP →鎖定。
不考慮故障轉移的sticky會話→降級節點上的「凹陷」。
0-RTT包括更改請求→重新提交風險。
在旋轉時沒有熱轉發硫磺→秒空。


iGaming/fintech的細節

高峰(錦標賽/比賽):加熱TLS會議(預連接),短鏈,高比例的恢復,HTTP/2/3前線。
支付網關/PSP: mTLS,嚴格的ciphers/version, pinned CA, 單獨的域名/ALB有嚴格的規則。
Antifrod/bot過濾器:通過IP/ASN/device-fingerprint進行L7-rate-limit,在單獨的域上使用金絲雀灰狼(挑戰/帽子)。
監管:HSTS,可審計的TLS參數日誌,版本報告,召回事件客戶服務。


迷你花花公子

通過L7平衡器發布金絲雀

1.添加5%重量的「api-canary」集群;2)註意p95/錯誤;3) 5→25→50→100%;4)降解時自動轉動。

證書緊急輪換

1.下載新的證書/密鑰;2)「reload」不降低連接符(SDS/熱替換);3)OCSP驗證;4)dashboard p95手推車。

包括HTTP/3

1.打開UDP/443;2)添加ALPN 「h3」;3)單獨的QUIC 失效/RTT度量;4)按客戶比例劃分的A/B。


結果

高效SSL終端是現代的TLS配置文件,正確的完成位置,智能的L7路由,可觀察性和嚴格的安全性(mTLS,HSTS,re-encrypt)。在IaC中記錄所有內容,自動輪換,測量p95/錯誤,並使用金絲雀-因此前線將超過峰值,並且可以預測地快速和安全。

Contact

與我們聯繫

如有任何問題或支援需求,歡迎隨時聯絡我們。我們隨時樂意提供協助!

開始整合

Email 為 必填。Telegram 或 WhatsApp 為 選填

您的姓名 選填
Email 選填
主旨 選填
訊息內容 選填
Telegram 選填
@
若您填寫 Telegram,我們將在 Email 之外,同步於 Telegram 回覆您。
WhatsApp 選填
格式:國碼 + 電話號碼(例如:+886XXXXXXXXX)。

按下此按鈕即表示您同意我們處理您的資料。