Az van, hogy van egy intranet server, amit az apache kb. így szolgál ki:
<VirtualHost *:443>
ServerName barmi.com
ProxyPass / http://localhost:5000/
Többnyire jól működik, de amikor az alkalmazás egy POST után redirect-et küld a kliensnek, akkor a böngésző http-n keresztül fogja a szervert megszólítani. Erre bevezettem a következő átirányítást:
<VirtualHost *:80>
ServerName barmi.com
RewriteEngine on
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
</VirtualHost>
Azonban ezzel az a baj, hogy a hálózaton még csak közlekedik az a fránya url titkosítatlanul, és egyel több lépés van, mint igazából szükséges lenne. Hogyan lehetne ezt az utóbbit kiküszöbölni, és a kliensnek egyből pl. https-es redirect-eket küldeni? Ahogy néztem, az alkalmazás dominánsan csak relatív, maximum /absolute/path/ alakú URL-eket küld redirectben, de előfordulhat, hogy http://barmi.com/absolute/path-t is küldhet valamely funkciója.
- 1022 megtekintés
Hozzászólások
A POSTot nem tudod redirectelni. Vagyis tudod, csak az adat semmiképpen nem fog elmenni. Ha relatív útvonalakat írsz bele pl egy formba, akkor az HTTPS-es oldalról HTTPS-re fog elmenni. Az persze lehet, hogy valamelyik alkalmazás nagyban tett a HTTPS-re és lazán beírta az általa generált cím elejére, hogy http. Esetleg lehet egy base href. Nézd meg a forráskódodat.
- A hozzászóláshoz be kell jelentkezni
Nem a POST-ot akarom redirectolni, hanem a POST után az alkalmazás küld egy redirect-et (http header Location: -nel), és ezt a response header-t (ami a kliens fele megy) akarom relatívról abszolút címzésre átírni és https-re állítani).
- A hozzászóláshoz be kell jelentkezni
Értem. Ezek szerint szarul van megírva az alkalmazás és a location header tartalmába nem veszi bele a HTTPS-t. Ha pl PHPról van szó, akkor a $_SERVER['HTTPS'] változó létezése jelenti a HTTPS-t, lehet átírni.
Szerk: ok, fa* vagyok, ha proxyzol és az Apache csinálja az SSL-t, akkor ezt már nem látod. Asszem inkább nem szóltam semmit. Reggel van.
- A hozzászóláshoz be kell jelentkezni
Igen, jól látod.
Szóval egy ilyen response headerből:
Location: /my/page
Kellene ilyent csinálni:
Location: https://server.com/my/page
- A hozzászóláshoz be kell jelentkezni