Reverse proxy mögül HTTPS kapcsolat beállítása

 ( machobymb | 2019. január 24., csütörtök - 23:51 )

Sziasztok!

Reverse proxy mögött csücsül egy virtuális szerverem (kifelé valami1.domain.hu-nak látszik és teljesít kéréseket egy vhost-ként, befelé valami2.domain.hu-nak látszik és teljesít kéréseket egy vhost-ként), melyet HTTP kapcsolaton, 80-as porton keresztül elérek. Most viszont azt szeretném, hogy a HTTPS-en keresztül érjem el, 443-as porton belülről is a valami2.domain.hu-t és kívülről a valami1.domain.hu-t.
A proxy-n van érvényes tanúsítvány, SSL tesztet lefuttatva minden jó, de ha az apache-ban beállítom az SSL-t és újraindítom az apache-ot, akkor nem jelenít meg semmit.
A neten néztem leírásokat, de nem találtam megfelelőt.

A reverse proxy-t nem én üzemeltetem, én csak a virtuális gépen tudok beállításokat végezni.

Üdv:
Laci

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Tisztázni kell, hogy a proxy végződteti a HTTPS-t (SSL offload) vagy a webszerver. Ezen felül azt is tisztázni kell, hogy SSL offload esetén a proxy és a kiszolgáló között HTTP vagy HTTPS kapcsolat legyen (utóbbi akár másik/self signed cert-tel; meg persze csak ha nem megbízható a kapcsolat a proxy és a host között). Ezen felül a belső valami2 tartományos elérés is a proxy-n megy át, vagy azt direktben a szerver szolgáltatja másik hálózaton?

Ha a valami1 és valami2 külön vhost, akkor külön is aktiválhatod az SSL-t a valami2-re, a valami1-et hagyon HTTP-n, a proxy üzemeltetőt pedig kéred, hogy a HTTPS kéréseket végződtesse, és irányítsa az eddigi HTTP portra (azt eldöntheted, hogy a sima HTTP kérések változatlanul átmenjenek, mint eddig, ne legyenek továbbküldve, vagy legyen HTTP->HTTPS átirányítás).

A helyzet akkor jelenleg az alábbi: kívülről megvan az átirányítás: tehát a valami1.domain.hu látszik külső hálózatból https-en keresztül is, érvényes tanúsítvánnyal.

Most már azt szeretném beállítani, hogyha belső hálózatról nézem a külső címet, akkor úgy is legyen meg a https kapcsolat.Ezt .htaccess fájl szerkesztéssel oldjam meg?

Valamint belülről a valami2.domain.hu-ra kellene szerintem generálnom egy cert-et (Let's Encrypt nem jó, mert ez a domain név kívülről nem látszik), majd azt terítenem kellene a belsőhálózat gépei felé. Ezután átirányítani a kéréseket https-re.

Most már azt szeretném beállítani, hogyha belső hálózatról nézem a külső címet, akkor úgy is legyen meg a https kapcsolat.Ezt .htaccess fájl szerkesztéssel oldjam meg?

.htaccess-ben is átirányíthatod,
vagy a :80-on figyeló vhostból is. az eredmény ugyan az.

Csak a problémádat nem fogja megoldani.

De egyátalán nem is értem, hogy mi az hogy belülrő nézed a külső címet. miért??
Ennek az ég világon semmi értelme.
Belülrő a belső címet nézd. Még jobb, ha nincs külön belső cím meg külső cím, csak a DNS mond rá más IP-t attól függően, hogy kívülről vagy belülről kérdezik...

--
zrubi.hu

Annyi a fejlemény, hogy felraktam a belső hálózatról elérhető vhost-nak az általam generált certet, a telepített vhost-on bejön a Wordpress HTTP-n és rendben töltődik, de ha elé teszem a HTTPS-t, akkor a CSS nem töltődik be: a forrást megnézve minden css-nek HTTP linkje van. Viszont ha az admin felületen az oldal címét https://-re állítom, akkor az oldal nem töltődik.

Azért nem töltődik be a CSS, mert a Wordpressnek is https-en kell működnie. 4 éve nekem is vagy fél nap volt mire rájöttem, hogy ha a reverse proxy https-en és a mögötte lévő szerver nem, akkor no CSS az oldalon. Az hogy ha átállítod a Wordpress-t https-re és nem megy, akkor a saját logjaiban keresném a bajok forrását!

su

sokkal egyszerűbb lenne az életed (sőt, van olyan webapp, ami másként nem is működik), ha ugyan az az FQDN-t használnád belül az igazi web szerveren is, és a külső reverse proxy-n is...
Ehhez csak az kell, hogy a DNS belül más IP-t adjon vissza, mint kívül.

A problémádhoz viszont tudni kellene, hogy pontosan mi nem megy.
- A reverse proxy logjai mit mondanak?
- A web szerver megkapja egyátalán az kérést a reverse proxytól?

De íme egy működő példa:

VirtualHost *:443
ServerName valami.domain.hu

SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key

SSLProxyEngine on
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off

# Reverse proxy configuration
ProxyPass / https://valami.domain.hu:443/
ProxyPassReverse / https://valami.domain.hu:443/

/VirtualHost

Szerk:
most nézem, hogy a reverse proxy-ra nincs ráhatásod.
Ezesetben nem fogod tudni átállítani https-re, mert vagy a revese proxy-n kerszetül nem fog működni, vagy direktbem meghívva.

Egy ilyen (web szerer + reverse proxy) setupnál mindkét oldalt szinkronban KELL állítgatni.
--
zrubi.hu