Am o terminare SSL funcțională cu STunnel în fața HAproxy.
Recent, problema adăugării suportului pentru HTTP/2 a fost aruncată în calea mea.
Acest lucru este ușor cu HAProxy, dar, ca o constrângere, STunnel trebuie să rămână.
Motivul pentru care STunnel trebuie să rămână este aproximativ 17000 de linii de SNI-uri și posibilitatea de a le gestiona printr-un API deja existent.
Aș putea foarte bine să adaug o listă de certificate pentru HAProxy care să conțină SNI-urile, câteva greps și ecouri vor face bine.
Cu toate acestea, în timpul căutărilor mele, nu am găsit încă pe nimeni care să pună HAProxy în fața STunnel în fața lui HAProxy. Este aceasta abordarea greșită?
Iată la ce am început deja să lucrez (încă nu există SNI-uri acolo - 17000 dintre ele ar fi puțin prea mult pentru o postare):
Frontend HAProxy (unde trebuie să adaug suport HTTP/2) cu criptare către STunnel:
asculta frontend
bind 192.168.1.100:443 transparent
modul http
server stunnel 127.0.0.100:443 ssl nu verifică niciunul
STunnel
[STunnel]
cert = /etc/ssl/certs/cert.pem
cifruri =
ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256
-SHA384:DHE-DSS-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA
256:AES256-GCM-SHA384:AES256-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-
RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:DHE-DSS-AES128-GCM-SHA256:DHE-RSA-AES128-GCM-SHA256:DHE-
RSA-AES128-SHA256:DHE-DSS-AES128-SHA256:AES128-GCM-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA
accept = 127.0.0.100:443
conecta = 127.0.0.100:80
întârziere = da
opțiuni = NO_SSLv3
opțiuni = NO_TLSv1
opțiuni = NO_TLSv1.1
opțiuni = NO_TLSv1.3
opțiuni = CIPHER_SERVER_PREFERENCE
opțiuni = DONT_INSERT_EMPTY_FRAGMENTS
renegociere = nu
protocol = proxy
local = 127.0.0.100
TIMEOUTclose = 0
„backend” HAProxy
asculta Web
ââââbind 127.0.0.100:80 transparent accept-proxy
ââââmod http
ââââechilibru minimumconn
ââââacl SSL-443 src 127.0.0.100
ââââtcp-request connection expect-proxy layer4 dacă STunnel
ââââopțiune http-keep-alive
ââââtimeout http-request 5s
ââââtunelul timeout 1h
ââââopțiune de reexpediere
ââââopțiuneavortonclose
ââââmaxconn 40000
ââââopțiune httplog
ââââserver server1 192.168.1.98:80 verifica
ââââserver server2 192.168.1.99:80 verifica
Am presupus că este necesară criptarea de la HAProxy la STunnel și ar trebui să țin cont de eventualele nepotriviri de protocol între acestea.
Ce versiune STunnel a lui HAProxy tcp-request connection expect-proxy layer4 dacă STunnel va fi?
Orice ajutor în obținerea suportului HTTP/2 cu STunnel este foarte apreciat, precum și obținerea unui mesaj „Nu face asta, este greșit”.
Mulțumesc,