Van egy régi, 2.2-es linux apache szerverem, ami még csak a TLS 1.0-át támogatja.
Szeretném, ha a HTTPS kérelmek teljes kiszolgálását egy-egy VirtualHost-on, tovább küldené egy másik, frissebb webszervernek a háttérben, ami már TLS 1.2-őt is támogat.
Sehogy sem tudom rábírni az Apache szerveremet, hogy ne a fogadó, régi szerver próbálja meg hitelesíteni a kérelmet, hanem a teljes hitelesítési folyamatot proxizza.
Csinált már valaki ilyent? Van ötletetek, ezt hogyan lehet elérni?
- 1626 megtekintés
Hozzászólások
Sehogy, mert amit te szeretnel, azt csak TCP tunnellel lehet megcsinalni.
- A hozzászóláshoz be kell jelentkezni
De azt meg nem tudom VirtualHost-hoz kapcsolni. :(
Köszönöm.
- A hozzászóláshoz be kell jelentkezni
Miért nem fordítod meg? A mostani elé teszel egy proxy-t.
- A hozzászóláshoz be kell jelentkezni
Azért nem fordítom meg, mert a rendszer a régi, nem csak az Apache. Félek, a sorrend nem segít.
- A hozzászóláshoz be kell jelentkezni
Bocs, lehet, hogy hülyeséget írtam. A megfordítás talán tényleg jó ötlet, bár ott meg azokat a VirtualHost-okat kellene proxyznom, amiket most nem. Vagyis csak áthelyeztem a problémát 2.2-es apache-ról 2.4-es re, és 2.4 alatt sem tudom megoldani ezt a proxy beállítást.
- A hozzászóláshoz be kell jelentkezni
Nem teljesen értem mit szeretnél, de a HAProxy jó eséllyel megoldja minden gondod ha beteszed az apache-ok elé, mert kb bármit proxyzhatsz vele úgy és oda ahova akarod, URL, path, header, stb. alapján.. :)
- A hozzászóláshoz be kell jelentkezni
Köszönöm, Isten vagy!
A kulcs:
mode tcp
És tényleg megcsinálja! Ez egy csoda! Örök hálám!
Persze, hogy PunishR érdemeit se csorbítsam, elé kell tenni, de a lényeg, hogy képes rá.
- A hozzászóláshoz be kell jelentkezni
Úgy tűnik, korai volt az örömöm ... Annyi szépséghibája van a dolognak, hogy a kérelemben szereplő HOST-ra feltételt csak mode http alatt tudok tenni. mode tcp alatt a teljes portra érkező forgalmat továbbítja, így a szétválasztásra ez sem képes. :( Ebben a formában ez kb. egy tűzfalszabállyal egyenértékű.
- A hozzászóláshoz be kell jelentkezni
És mégis! :)
A haproxy képes tcp módban sni kezelésére is!
Ha ez valakinek még segítség, itt egy link:
http://blog.haproxy.com/2012/04/13/enhanced-ssl-load-balancing-with-server-name-indication-sni-tls-extension/
Most már tökéletesen működik, ezzel be tudom állítani a hostonkénti szétválogatást is.
Még egyszer köszönök minden segítséget!
- A hozzászóláshoz be kell jelentkezni
Protokollok rétegződését ajánlom figyelmedbe. Az SSL a TCP fölött, HTTP alatt van. A régi Apache csak akkor tud bármit kezdeni a bejövő kapcsolattal, ha HTTP szinten néz rá, magyarul ki kell csomagolnia az SSL-t (amit állításod szerint nem tud). Ahogy fentebb írták, egy stunnel kibontja az SSL-t az Apache előtt és az Apache már csak a HTTP-t fogja megkapni. Lehet még próbálkozni iptables továbbítással is, ez TCP/IP szinten megy, tehát nem látod a HTTP kérést, nem tudsz pl. az URL alapján különböző backendre továbbítani.
De szerintem leginkább az itt a baj, hogy azt a régi Apache-ot teljesen ki kellene dobni és lecserélni, önmagában is gáz, főleg reverse proxynak használni, csak favágás lesz belőle.
- A hozzászóláshoz be kell jelentkezni
Hivatalosan én is úgy tudtam, hogy az Apache nem tudja kibontani az SSL-t, és erre használja az openssl-t a rendszerből... Volt ez akkor, amikor ebből következően megtanították nekem azt is, hogy név alapú virtual host nem lehetséges Apache alatt 1 IP címmel, hisz a hitelesítés az IP címre vonatkozik, és az Apache csak utána jut a hitelesített kérelemhez, amiből felismeri a nevet.
Aztán mégis csak lehetséges név alapú virtual host egy IP-vel. Ezért reméltem, hogy az Apache mégis csak képes továbbítani valahogy a teljes kérelmet kibontatlanul, hisz még hitelesítés előtt felismeri, kinek szól a kérelem.
Tudom, hogy gáz a helyzet, de egy átmeneti megoldás mindenképp kell, míg a végleges el nem készül.
- A hozzászóláshoz be kell jelentkezni
Az SNI az kicsit mas teszta.. De ahhoz meg regi az apache-od.
- A hozzászóláshoz be kell jelentkezni
SNI= Sajátos Nevelési Igényű (lásd általános iskola pl: autisztikus vagy beszédhibás tanuló)
- A hozzászóláshoz be kell jelentkezni
---------------------------------------------------
Egy szakmai portalon sztem a masik SNI-re gondoltak asszem...
Hell is empty and all the devils are here.
-- Wm. Shakespeare, "The Tempest"
- A hozzászóláshoz be kell jelentkezni
egy szakmain igen
- A hozzászóláshoz be kell jelentkezni
Magaslabda volt :D
---------------------------------------------------
Hell is empty and all the devils are here.
-- Wm. Shakespeare, "The Tempest"
- A hozzászóláshoz be kell jelentkezni
Jelenleg ez a régi apache képes egy IP cím alatt különböző https hitelesítéseket kezelni.
- A hozzászóláshoz be kell jelentkezni
SNI kell ahhoz, hogy a keresnek megfelelo cert/key part valassza ki az apache, ez a resz eddig oke talan nalad is a 2.2-vel. Az SSL handshake az apache es a kliens tortenik igy marad a TLS1.0 protokoll, innentol az apache mar a titkositatlan HTTP forgalmat kezeli, amit ugyan ujra be lehet titkositani, hogy a 2.4-nek atkuldd, de ennek csak akkor van ertelme, ha a ket apache kozotti kapcsolat nem vedett - kulonben csak a procikat dolgoztatot feleslegesen. Egy SSL terminalo proxyt berakhatsz a mostani webszerver ele (ez lehet akar az ujabb apache, vagy haproxy, vagy ...), de ez sem lesz ugy transzparens, ahogy szeretned - azaz a kliens kapcsolata mindig a proxyn fog vegzodni, nem egyik vagy masik webszerveren.
- A hozzászóláshoz be kell jelentkezni
Igen, 2.2 alatt működik a hostnév alapú hitelesítés kiválasztása. Mivel az Apache és a kliens tartja a kapcsolatot, azt el tudom fogadni, hogy az Apache TLS 1.0 felett nem fog tudni semmit.
Tehát az Apache elé kell mindenképp egy proxy, de olyan, amelyik a hostnév alapján képes a tcp forgalmat egyik vagy másik szerver felé továbbítani.
Egyelőre ilyen proxy-t még nem találtam. Sajna a haproxy-ban sem tudom ezt beállítani. (Vagyis be lehet állítani, hibát sem ad, csak tcp módban egyszerűen figyelmen kívül hagyja a httpchk feltételt.
- A hozzászóláshoz be kell jelentkezni
hitch/pound/nginx es hasonlok?
t
- A hozzászóláshoz be kell jelentkezni
Köszönöm, végül a haproxy-ban találtam sni kezelő megoldást.
- A hozzászóláshoz be kell jelentkezni