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,