Portál AbcLinuxu, 8. května 2025 18:27
Dobré odpoledne,
Když chci použít reverzní proxy a požadavek poslat na jiný server jak je to s ssl certifikátem?
a) musí být v konfiguraci odkud se volá ProxyPassReverse a v konfiguraci na koncovém stroji již být nemusí
b) nemusí být v konfiguraci odkud se volá ProxyPassReverse ale musí být v konfiguraci na koncovém stroji
a) musí být jak v konfiguraci odkud se volá ProxyPassReverse tak musí být v konfiguraci na koncovém stroji
Děkuji za objasnění
Řešení dotazu:
Nevíte prosím co je tam špatně?
Na hlavní serveru na který chodí veškerá komunikace 80 a 443 mám <VirtualHost *:443> ServerName example1.com SSLProxyEngine on ProxyPreserveHost On ProxyPass / 192.168.0.51:443/ ProxyPassReverse / 192.168.0.51:443/ </VirtualHost> <VirtualHost *:443> ServerName example2.com SSLProxyEngine on ProxyPreserveHost On ProxyPass / 192.168.0.52:443/ ProxyPassReverse / 192.168.0.52:443/ </VirtualHost> Na serveru 192.168.0.51 mám <VirtualHost *:443> ServerName example1.com DocumentRoot /var/www/html/example1.com SSLEngine on SSLCertificateFile /etc/ssl/example1.com/cert.pem SSLCertificateKeyFile /etc/ssl/example1.com/privkey.pem SSLCertificateChainFile /etc/ssl/example1.com/chain.pem </VirtualHost> Na serveru 192.168.0.52 mám <VirtualHost *:443> ServerName example2.com DocumentRoot /var/www/html/example2.com SSLEngine on SSLCertificateFile /etc/ssl/example2.com/cert.pem SSLCertificateKeyFile /etc/ssl/example2.com/privkey.pem SSLCertificateChainFile /etc/ssl/example2.com/chain.pem </VirtualHost>Výpis error.log
[Sun Nov 07 17:18:08.766379 2021] [mpm_event:notice] [pid 4109:tid 140184108125504] AH00493: SIGUSR1 received. Doing graceful restart [Sun Nov 07 17:18:08.775992 2021] [mpm_event:notice] [pid 4109:tid 140184108125504] AH00489: Apache/2.4.51 (Debian) OpenSSL/1.1.1k configured -- resuming normal operations [Sun Nov 07 17:18:08.776025 2021] [core:notice] [pid 4109:tid 140184108125504] AH00094: Command line: '/usr/sbin/apache2'
frontend tcp-proxy bind :5050 mode tcp tcp-request inspect-delay 5s tcp-request content accept if { req_ssl_hello_type 1 } use_backend centrum if { req.ssl_sni -i www.centrum.cz } use_backend seznam if { req.ssl_sni -i www.seznam.cz } backend seznam mode tcp server server1 www.seznam.cz:443 backend centrum mode tcp server server1 www.centrum.cz:443Použité zdroje: 1, 2, 3 Každý si to teď může vyzkoušet na hrach.eu:5050, než mě to přestane bavit a vypnu to.
frontend tcp-proxy bind :443 mode tcp tcp-request inspect-delay 5s tcp-request content accept if { req_ssl_hello_type 1 } use_backend web1 if { req.ssl_sni -i www.example1.com } use_backend web2 if { req.ssl_sni -i www.example2.com } backend web1 mode tcp server server1 192.168.0.51:443 backend web2 mode tcp server server1 192.168.0.52:443
Jednak www.example.com není v tom seznamuV jakém seznamu myslíš?
jednak „nenačte“ a „nefunguje“ je popis problému k ničemu (dojde spojení na backend? zaloguje se něco?)Ano, ke spojení dojde, stránky se načtou ale nejsou nastylované a funguje pouze www.example.com, třeba www.example.com/css/style.css se nenačte.
V jakém seznamu myslíš?V tomhle
use_backend web1 if { req.ssl_sni -i www.example1.com } use_backend web2 if { req.ssl_sni -i www.example2.com }
Ano, ke spojení dojde, stránky se načtou ale nejsou nastylované a funguje pouze www.example.com, třeba www.example.com/css/style.cssTak to se SNI nemůže mít nic společného, protože URL se přenáší uvnitř TLS tunelu.
se nenačte.Tak to máš blbý, nic jiného s tím nejde dělat. Pomohl by použitelný popis problému. Například jak už jsem psal, že se máš zkusit připojit řádkovým s_clientem (a v tomto případě provést HTTP GET ručně).
use_backend centrum if { req.ssl_sni -i www.centrum.cz } use_backend seznam if { req.ssl_sni -i www.seznam.cz }Ty tam ty domény ale taky nemáš, tak jak to že ti to funguje?
frontend tcp-proxy bind :443 mode tcp tcp-request inspect-delay 5s tcp-request content accept if { req_ssl_hello_type 1 } use_backend www.example1.com if { req.ssl_sni -i www.example1.com } use_backend www.example2.com if { req.ssl_sni -i www.example2.com } backend www.example1.com mode tcp server server1 192.168.0.51:443 backend www.example2.com mode tcp server server1 192.168.0.52:443
curl -v --connect-to www.seznam.cz:443:hrach.eu:5050 https://www.seznam.cz...
* Server certificate: * subject: CN=www.seznam.cz * start date: Oct 8 14:00:56 2021 GMT * expire date: Jan 6 14:00:55 2022 GMT * subjectAltName: host "www.seznam.cz" matched cert's "www.seznam.cz" * issuer: C=US; O=Let's Encrypt; CN=R3 * SSL certificate verify ok.
SSLProxyEngine onJenze on by chtel terminovat SSL az v lokalni siti a to dost dobre s prostrednikem nejde..
SSLProxyVerify none SSLProxyCheckPeerCN off SSLProxyCheckPeerName off SSLProxyCheckPeerExpire offPak je jedno jaký má v cíli cerifikát.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.