Puncte:1

HAProxy nu funcționează cu SNI și ACL-uri

drapel gb

Încerc să obțin haproxy să folosească acls cu SNI și nu cooperează. Prezintă certificatul corect, așa că SNI trebuie să funcționeze. Cu toate acestea, nu îl pot face să selecteze un backend pe baza numelui de gazdă din SNI.

Pe care le verific configurația, primesc următoarele

[AVERTISMENT] (21486): Proxy „fe-dr-totalflood.com”: Preluări de eșantion L6 ignorate pe proxy-urile HTTP (declarat la ./haproxy.cfg.tmp:176).
[AVERTISMENT] (21486): Proxy „fe-dr-totalflood.com”: Preluări de eșantion L6 ignorate pe proxy-urile HTTP (declarat la ./haproxy.cfg.tmp:177).
Au fost găsite avertismente.
Fișierul de configurare este valid

Habar nu am ce înseamnă mesajele de eroare și am pus o notă lângă rândurile corespunzătoare din fragmentul următor.

frontend fe-dr-totalflood.com
  modul http
  lega 172.22.8.229:80
  bind 172.22.8.229:443 ssl crt dr-www.totalflood.com.crt crt dr-xml.totalflood.com.crt

  ## http->https redirecționare
  Schema de redirecționare http-request https cu excepția cazului în care { ssl_fc }

  ## liste de control al accesului
  acl https ssl_fc
  acl letsencrypt-acl path_beg /.well-known/acme-challenge/
  acl www-acl req_ssl_sni dr-www.totalflood.com
  acl xml-acl req_ssl_sni dr-xml.totalflood.com

  # dacă Let's Encrypt, săriți restul și săriți la backend
  use_backend be-letsencrypt dacă letsencrypt-acl

  use_backend be-dr-www.totalflood.com dacă www-acl <------ 176
  use_backend be-dr-xml.totalflood.com dacă xml-acl <------ 177

  default_backend be-no-such-site

#---------------------------------------------
backend be-dr-www.totalflood.com
  modul http
  echilibru roundrobin
  cookie SERVERID insert indirect nocache maxidle 30m

  ## setați numele gazdei în antet
  acl h_host_exists req.hdr(Host) -m găsit
  http-request del-header Gazdă dacă h_host_exists
  http-request set-header Gazdă www.totalflood.com

  Verificați serverul implicit maxconn 100

  server scadmzp2wb01 scadmzp2wb01.lereta.net:80 cookie scadmzp2wb01

#---------------------------------------------
backend be-dr-xml.totalflood.com
  modul http
  echilibru roundrobin
  cookie SERVERID insert indirect nocache maxidle 30m

  ## setați numele gazdei în antet
  acl h_host_exists req.hdr(Host) -m găsit
  http-request del-header Gazdă dacă h_host_exists
  http-request set-header Gazdă xml.totalflood.com

  Verificați serverul implicit maxconn 100

  server scadmzxml01 scadmzxml01.lereta.net:80 cookie scadmzxml01

#---------------------------------------------
backend be-letsencrypt
  server localhost 127.0.0.1:8888

#---------------------------------------------
backend fi-nu-un astfel de site
  server localhost 127.0.0.1:8888

Când încerc să accesez oricare dintre site-uri, lovesc întotdeauna backend-ul implicit, indiferent de ce. Am testat acest lucru schimbând backend-ul implicit pentru a merge în alte locuri. Dacă eu atașați fie la adresa URL calea /.well-known/acme-challenge, haproxy pare să mă trimită la locul corect.

Ceea ce nu pot să-mi dau seama este de ce acls-urile bazate pe informații SNI nu funcționează.

Folosesc versiunea 2.4.2 a haproxy OracleLinux 8.

$ haproxy -v
HAProxy versiunea 2.4.2-553dee3 2021/07/07 - https://haproxy.org/
Stare: ramură acceptată pe termen lung - nu va mai primi remedieri în jurul trimestrului al doilea 2026.
Erori cunoscute: http://www.haproxy.org/bugs/bugs-2.4.2.html
Rulează pe: Linux 5.4.17-2136.304.4.1.el8uek.x86_64 #2 SMP Mar, 8 februarie 11:54:24 PST 2022 x86_64
Puncte:1
drapel gu

Citând din documente:

Preluarea mostrelor din conținutul tampon este puțin diferită de cea anterioară eșantionul preia mai sus, deoarece datele eșantionate sunt efemere. Aceste date pot vor fi folosite numai atunci când sunt disponibile și se vor pierde când sunt redirecționate. Din acest motiv, mostrele preluate din conținutul tamponului în timpul unei solicitări nu pot fi folosit într-un răspuns, de exemplu. Chiar și în timp ce datele sunt preluate, acestea poti schimba.

De aceea, primiți un avertisment despre ignorarea ACL-urilor Layer 6.

În loc de a folosi req_ssl_sni, mai bine ai folosi ssl_fc_sni la nivelul 5, care vă va oferi aceleași informații, dar mai fiabil.

scarville avatar
drapel gb
Asta a funcționat. Mulțumesc.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.