Discussione:
[1/2 OT] httpd come bridge
(troppo vecchio per rispondere)
Piergiorgio Sartor
2020-07-06 20:18:26 UTC
Permalink
Salve,

non sono sicuro sia completamente
in topic qui, ma ci provo lo stesso.

Ho un programma che si interfaccia
tramite pagina web, ad un certa porta,
diciamo 5678, di localhost, oppure su
qualunque if.

Questo programma, pero`, serve solo
pagine http, non supporta https.

Mi chiedevo, e` possibile configurare,
chesso`, apache (httpd, ma anche altre
soluzioni sono ben accette) in modo
tale che faccia da ponte (o proxy),
tra la porta 4567 (5678?) https da
un if e la porta 5678 http di tale
suddetto programma (in localhost)?

Non so se sono stato chiaro, vorrei
collegarmi al programma dall'esterno,
ma via https, cosa non supportata
dal programma stesso.

Grazia anticipatamente,

P.S.: non ho cercato in giro perche` non
ho idea di cosa cercare.

bye,
--
piergiorgio
Marco Gaiarin
2020-07-06 21:46:34 UTC
Permalink
Mandi! Piergiorgio Sartor
In chel di` si favelave...
Post by Piergiorgio Sartor
P.S.: non ho cercato in giro perche` non
ho idea di cosa cercare.
Si, reverse proxy. ;-)
--
But i still haven't found
what i'm looking for (U2)
Marco
2020-07-07 13:57:28 UTC
Permalink
On Mon, 6 Jul 2020 22:18:26 +0200, Piergiorgio Sartor
Post by Piergiorgio Sartor
Salve,
non sono sicuro sia completamente
in topic qui, ma ci provo lo stesso.
Ho un programma che si interfaccia
tramite pagina web, ad un certa porta,
diciamo 5678, di localhost, oppure su
qualunque if.
Questo programma, pero`, serve solo
pagine http, non supporta https.
Mi chiedevo, e` possibile configurare,
chesso`, apache (httpd, ma anche altre
soluzioni sono ben accette) in modo
tale che faccia da ponte (o proxy),
tra la porta 4567 (5678?) https da
un if e la porta 5678 http di tale
suddetto programma (in localhost)?
Non so se sono stato chiaro, vorrei
collegarmi al programma dall'esterno,
ma via https, cosa non supportata
dal programma stesso.
Grazia anticipatamente,
P.S.: non ho cercato in giro perche` non
ho idea di cosa cercare.
Reverse proxy con apache, una cosa del genere:

------------------------------------
<VirtualHost *:4567>

ServerName miodominio.example.com

ProxyPass "/" "http://ip.o.dns.del.device:5678/"
ProxyPassReverse "/" "http://ip.o.dns.del.device:5678/"

SSLEngine on

SSLCertificateFile ....
SSLCertificateKeyFile ....
SSLCertificateChainFile ....
</VirtualHost>
------------------------------------

con nginx:

------------------------------------
server {
listen 4567 ssl;
listen [::]:4567 ssl;

ssl_certificate .....;
ssl_certificate_key ....;

location / {
proxy_pass http://ip.o.dns.del.device:5678;
}
}
------------------------------------

Ma si può fare praticamente con qualunque server web degno di questo nome.

Ovviamente devi completare le configurazioni con le ulteriori opzioni che
ti servono quanto a sicurezza etc.
--
Cio' che si vede, e'.
Piergiorgio Sartor
2020-07-07 16:11:04 UTC
Permalink
On 07/07/2020 15.57, Marco wrote:
[...]
Post by Marco
------------------------------------
<VirtualHost *:4567>
ServerName miodominio.example.com
ProxyPass "/" "http://ip.o.dns.del.device:5678/"
ProxyPassReverse "/" "http://ip.o.dns.del.device:5678/"
SSLEngine on
SSLCertificateFile ....
SSLCertificateKeyFile ....
SSLCertificateChainFile ....
</VirtualHost>
Per prima cosa, grazie ad entrambi
per le risposte.

Riguardo quanto sopra... Non mi funziona...

Ora, ho provato ha semplificare con (ho
cambiato la porta da 4567 a 7654):

<VirtualHost *:7654>
ServerName localhost
ProxyPass / http://localhost:9090
ProxyPassReverse / http://localhost:9090
</VirtualHost>

Che dovrebbe, se ho capito qualcosa,
semplicemente mappare da 7654 a 9090
(dove c'e` cockpit in ascolto, quindi
non apache).

Non funziona...

$> curl http://localhost:7654
curl: (56) Recv failure: Connection reset by peer

Ovviamente curl http://localhost:9090
funziona e curl http://localhost anche.

Controllando con: nmap localhost -p 7654

PORT STATE SERVICE
7654/tcp open unknown

Qualche idea? Dove sbaglio?

Un'altra domanda, riguardo "ServerName".
A che serve?
Voglio dire, cosa interessa ad apache
sapere il nome DNS del server?

Grazie di nuovo,

bye,
--
piergiorgio
Marco
2020-07-07 16:32:44 UTC
Permalink
On Tue, 7 Jul 2020 18:11:04 +0200, Piergiorgio Sartor
Post by Piergiorgio Sartor
[...]
Post by Marco
------------------------------------
<VirtualHost *:4567>
ServerName miodominio.example.com
ProxyPass "/" "http://ip.o.dns.del.device:5678/"
ProxyPassReverse "/" "http://ip.o.dns.del.device:5678/"
SSLEngine on
SSLCertificateFile ....
SSLCertificateKeyFile ....
SSLCertificateChainFile ....
</VirtualHost>
Per prima cosa, grazie ad entrambi
per le risposte.
Riguardo quanto sopra... Non mi funziona...
Ora, ho provato ha semplificare con (ho
<VirtualHost *:7654>
ServerName localhost
ProxyPass / http://localhost:9090
ProxyPassReverse / http://localhost:9090
</VirtualHost>
Che dovrebbe, se ho capito qualcosa,
semplicemente mappare da 7654 a 9090
(dove c'e` cockpit in ascolto, quindi
non apache).
Non funziona...
$> curl http://localhost:7654
curl: (56) Recv failure: Connection reset by peer
Ovviamente curl http://localhost:9090
funziona e curl http://localhost anche.
Controllando con: nmap localhost -p 7654
PORT STATE SERVICE
7654/tcp open unknown
Qualche idea? Dove sbaglio?
In assenza di sfera di cirstallo, ti consiglio di guardare il log di
apache, ed accertarti che sia in ascolto su 127.0.0.1 (o su 0.0.0.0) anziché
(per esempio) sull'IP di una sola interfaccia (puoi controllare con ss o
netstat).
Post by Piergiorgio Sartor
Un'altra domanda, riguardo "ServerName".
A che serve?
Serve per fare virtual hosting (multipli siti web sulla stessa macchina).

https://it.wikipedia.org/wiki/Virtual_hosting

Se hai un solo sito _credo_ (ma devi guardare i doc di apache) che potresti
anche ometterlo.
--
Cio' che si vede, e'.
Marco
2020-07-07 16:38:33 UTC
Permalink
Post by Marco
ed accertarti che sia in ascolto su 127.0.0.1 (o su 0.0.0.0)
anziché (per esempio) sull'IP di una sola interfaccia (puoi controllare
con ss o netstat).
Ok, questo niente perché non avevo visto che avevi fatto nmap. Quindi
guarda il log. Aumenta la verbosità se è il caso.
--
Cio' che si vede, e'.
Piergiorgio Sartor
2020-07-07 16:54:55 UTC
Permalink
Post by Marco
Post by Marco
ed accertarti che sia in ascolto su 127.0.0.1 (o su 0.0.0.0)
anziché (per esempio) sull'IP di una sola interfaccia (puoi controllare
con ss o netstat).
Ok, questo niente perché non avevo visto che avevi fatto nmap. Quindi
guarda il log. Aumenta la verbosità se è il caso.
Mah, ho inserito, all'interno della
direttiva VirtualHost:

LogLevel debug
ErrorLog /var/log/httpd/virtual_host_7654_error.log

Dentro il log file non c'e` praticamente
niente, solo:

initializing worker http://localhost:9090 shared
initializing worker http://localhost:9090 local
initialized pool in child 156848 for (localhost) min=0 max=61 smax=61

Quindi solo init, niente altro.

Non sembra lamentarsi di niente negli
altri log (che sono 5, tra l'altro).

Una cosa, pero`, c'e`...

La porta 7654 e` occupata da un altro
processo...
Ma ******...!!!!@#!$

Adesso cambio porta e riprovo...

Grazie di nuovo,

bye,
--
piergiorgio
Piergiorgio Sartor
2020-07-07 17:02:50 UTC
Permalink
On 07/07/2020 18.54, Piergiorgio Sartor wrote:
[...]
Post by Piergiorgio Sartor
Adesso cambio porta e riprovo...
OK, usando 7653 ed aggiungendo
Listen 7653 prima di VirtualHost
funziona, almeno il setup semplice.

bye,
--
piergiorgio
Piergiorgio Sartor
2020-07-07 17:57:24 UTC
Permalink
Post by Piergiorgio Sartor
[...]
Post by Piergiorgio Sartor
Adesso cambio porta e riprovo...
OK, usando 7653 ed aggiungendo
Listen 7653 prima di VirtualHost
funziona, almeno il setup semplice.
Allora, funziona piu` o meno a dovere.
Ogni tanti il browswer ritorna un
errore dicendo che il certificato SSL
e` troppo lungo...

Grazie ancora!

bye,
--
piergiorgio
Piergiorgio Sartor
2020-07-07 19:37:23 UTC
Permalink
On 07/07/2020 19.57, Piergiorgio Sartor wrote:
[...]
Post by Piergiorgio Sartor
Allora, funziona piu` o meno a dovere.
Ogni tanti il browswer ritorna un
errore dicendo che il certificato SSL
e` troppo lungo...
Per completezza...

Risolto anche questo, il server
locale era ancora attivo, quindi
ogni tanto arrivava una risposta
non SSL alla richiesta SSL.

bye,
--
piergiorgio
Continua a leggere su narkive:
Loading...