Puncte:0

haproxy două aplicații pe același port cu certificate diferite

drapel cn

Am configurat haproxy. Configurația mea este:

frontend ambele aplicații
        lega*:9999
        modul http
        acl prov path_end -i /prov-0.0.1-SNAPSHOT/
        acl web path end -i /web-0.0.1-SNAPSHOT/
        acl prov1 path_end -i /prov-0.0.1-SNAPSHOT/testAuthenticated.html
        acl web1 path_end -i /web-0.0.1-SNAPSHOT/testAuthenticated.html
        use_backend focus dacă prov
        use_backend focus dacă prov1
        use_backend cnt dacă web
        use_backend cnt dacă web1

și funcționează corect fără https. Acum aș dori să adaug https, dar ambele aplicații ar trebui să apeleze haproxy pe port 8443 (https://localhost:8443/prov-0.0.1-SNAPSHOT și https://localhost:8443/web-0.0.1-SNAPSHOT) dar cu certificate diferite - prov(haproxyPROV.pem), web(haproxyWEB.pem). Cum îl pot configura?

Am incercat:

frontend https
        bind *:8443 ssl crt /etc/haproxy/haproxyWEB.pem
        modul http

dar aici pot avea doar un certificat pe port

Michael Hampton avatar
drapel cz
Folosiți doar un singur certificat.
Michu93 avatar
drapel cn
@MichaelHampton, nu pot folosi un singur certificat, știu că ar fi ușor, dar nu este cazul aici - am nevoie de ambele certificate
Michael Hampton avatar
drapel cz
Eh? De ce aveți două certificate pentru aceeași materie? Ai omis detalii importante? Dacă da, editați-vă întrebarea.
Michu93 avatar
drapel cn
@MichaelHampton, clienții își doresc, vor două certificate pentru fotografierea proxy inversă către o altă aplicație pe tomcat.
Michael Hampton avatar
drapel cz
Nu are sens să ai două certificate pentru localhost:8443. Ce se întâmplă cu adevărat aici?
Michu93 avatar
drapel cn
@MichaelHampton, în viața reală, desigur, nu va fi localhost. Există un server care ar trebui să accepte atât /web cât și /prov pe același port cu certificate diferite. Este chiar realizabil în haproxy?
Michael Hampton avatar
drapel cz
Nu are sens să ai două certificate pentru _orice_ nume, fie localhost sau altceva. Haproxy este irelevant. Nu este posibil să știi ce certificat să folosești.
Puncte:1
drapel ng

Puteți utiliza mai multe certificate pe un singur port:

frontend foo
    bind *:8443 ssl crt /path/to/cert1.pem crt /path/to/cert2.pem

Haproxy folosește TLS SNI pentru a potrivi certificatul cu conexiunea (dacă SNI nu este prezent sau nu este găsită potrivire, atunci primul certificat pe lega se folosește linia (cert1.pem în exemplul de mai sus)). Deci, pentru a vă atinge obiectivul, ar trebui să indicați două nume de domenii diferite către această gazdă:port. Ca web.example.com și prov.example.com arătând spre aceeași gazdă. Despre asta sunt toate comentariile, cred.
Notă secundară, folosești sfârșitul_calei în ACL-urile dvs., cum ar fi acl prov path_end -i /prov-0.0.1-SNAPSHOT/, dar și asta se va potrivi /foobar/prov-0.0.1-SNAPSHOT/ și /web-0.0.1-SNAPSHOT/prov-0.0.1-SNAPSHOT/, care poate fi sau nu ceea ce doriți. De obicei cale sau drum_beg sunt mai potrivite.

Michu93 avatar
drapel cn
Mulțumesc, @tbielaszewski! Cu toate acestea, am folosit sugestia @MichaelHampton și am folosit două interfețe cu porturi diferite care apelează același backend: `frontend web_https bind *:443 ssl crt /etc/haproxy/haproxyWEB.pem use_backend duo frontend prov_https bind *:9999 ssl crt /etc/haproxy/ haproxyPROV.pem use_backend duo` dar înseamnă că atunci când am doar localhost, tot nu pot folosi două certificate pe un port, nu?
tbielaszewski avatar
drapel ng
Porturi diferite sau nume de gazdă diferite (SNI). Tertium non datur.

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.