Portál AbcLinuxu, 8. května 2025 04:18
<VirtualHost *:80>
ServerAdmin webmaster@server.cz
ServerAlias test.server.local
ServerName test.server.cz
ProxyPass / http://test.server2.local/
ProxyPassReverse / http://test.server2.local/
</VirtualHost>
chtěl bych přesměrovat i https a ideálně volání z http přecvaknout na https. Ale ani obyčejné přesměrování se mi nedaří.
na virtuálu je tento virtualhost :
<IfDefine SSL>
<IfDefine !NOSSL>
<VirtualHost *:443>
ServerName "test.server.cz"
ServerAlias "test.server.local, test.server2.local "
DocumentRoot "/srv/www/test"
ErrorLog /var/log/apache2/ssl_test_error.log
CustomLog /var/log/apache2/ssl_test_custom.log ssl_combined
LogLevel warn
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite ALL:!aNULL:!eNULL:!SSLv2:!LOW:!EXP:!MD5:@STRENGTH
SSLCertificateFile /etc/apache2/ssl.crt/https_2018.crt
SSLCertificateKeyFile /etc/apache2/ssl.key/https_2018.key
SSLCACertificateFile /etc/apache2/ssl.crt/Servers.crt
<Directory /srv/www/test>
AllowOverride None
Options +ExecCGI -Includes
<IfModule !mod_access_compat.c>
Require all granted
</IfModule>
<IfModule mod_access_compat.c>
Order allow,deny
Allow from all
</IfModule>
</Directory>
</VirtualHost>
</IfDefine>
</IfDefine>
a z viditelného serveru se to pokouším přesměrovat podobně jako http provoz, ale nedaří se mi. různé návody, co jsem našel, nejsou úplně na stejný případ, a vždy se to někde sekne.
Když v LAN zavolám https://test.server2.local, tak mně prohlížeč pochopitelně seřve kvůli certifikátu, ale jinak to běží. Ale přesměrovat to nedokážu.
Děkuji předem za nějakou tu nápovědu
Milan
Řešení dotazu:
<VirtualHost *:443>
ServerAdmin webmaster@jednota.podborany.cz
ServerAlias test.server.local
ServerName test.server.cz
ProxyPass / http://test.server2.local/
ProxyPassReverse / http://test.server2.local/
SSLEngine On
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite ALL:!aNULL:!eNULL:!SSLv2:!LOW:!EXP:!MD5:@STRENGTH
SSLCertificateFile /etc/apache2/ssl.crt/https_2018.crt
SSLCertificateKeyFile /etc/apache2/ssl.key/https_2018.key
SSLCACertificateFile /etc/apache2/ssl.crt/Servers.crt
...
</VirtualHost>
No pokládám otázku .. říkám si zkusím a ono to zevnitř nefunguje .. nevím proč, nahodí se mi server2 do adr. řádku, certifikát neplatí (viz výše), ale zvenčí jen upozornění, že vydavatel není znám ( samopodepsaný ) ...
Takže jak to vypadá, tohle je částečné řešení.
Uvědomuji si tu krkolomnost toho co dělám, žádám jeden secure server1 aby mi podal obsah z jiného secure serveru2, kde je cerifikát jen na ten server1...
Aby přesměrování vůbec fungovalo, musí mít ten druhý server i jiné doménové jméno, čímž se narušuje ten secure provoz .. no je to maglajz. Mohl bych na server2 dodělat certifikát, jen jsem nevěděl, zda tím jen nezkomplikuji celý problém ...
Děkuji za radu, která mně nasměrovala.
SSLProxyEngine Onsamosebou musíš mít příslušné apache moduly pro proxy a SSL.
Co se týče provozu ( zátěže ), tak zrovna tohle přesměrování asi nebude nic extra, apač jen předává požadavky dále a přijaté data šifruje a posílá zpět. Nebo se pletu ?Jenže na to „jen předání“ musíte mít celý proces Apache (resp. několik procesů), Apache ten požadavek zpracuje úplně stejně, jako kdyby ho měl následně předat třeba modulu pro PHP, a předá ho modulu pro reverzní proxy. Při nízkém provozu to není potřeba řešit, zvlášť pokud na tom Apache máte i jiné aplikace, které jsou pro Apache odladěné. Z toho původního dotazu nebylo jasné, zda ten server nemá dělat jen reverzní proxy, a pak by na to existovaly vhodnější nástroje, než Apache. Už čistě jenom z toho důvodu, že Apache je univerzální webový server, a jeden z mnoha jeho modulů je reverzní proxy server – který tam je spíš z toho důvodu, že univerzálnost Apache umožňovala přidat tam i tohle. Jiné servery vznikly později a právě s tím záměrem zakončit na nich HTTP(S) spojení od klienta, vyčistit ho, případně rychle odbavit statické soubory – ale pokud klient požaduje něco, co od serveru vyžaduje skutečnou práci aplikace, přeposlat ten požadavek někam dál, kde se ta práce vykoná. Je to jiný charakter práce serveru, takže se pro to i hodí jiná aplikace.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.