2016-07-14 25 views
6

È possibile utilizzare il proxy inverso Nginx con SSL Pass-through in modo che possa passare la richiesta a un server che richiede l'autenticazione del certificato per il client.SSL pass-through in Nginx Reverse proxy?

Significa che il server dovrà disporre del certificato del server client e non avrà bisogno del certificato del server reverse proxy Nginx.

risposta

7

non so quanto può funzionare nella vostra situazione, ma recenti (1.9.3+) versioni di Nginx può passare (criptato) TLS pacchetti direttamente a un server upstream, utilizzando il stream block:

stream { 
    server { 
    listen  443; 
    proxy_pass backend.example.com:443; 
    } 
} 

Si noti che non può utilizzare la direttiva server_name, ad esempio (poiché funziona essenzialmente a livello TCP e non conosce nulla di TLS) e quindi non può creare host virtuali.

+0

Questo funziona, ma non è possibile accedere alla registrazione, il registro di accesso è vuoto – radtek

+0

Il log di accesso molto probabilmente non funzionerà in modalità 'stream': Nginx non sa nulla di HTTP quando opera in tale modalità (e non può intercettare HTTPS perché è crittografato!), E quindi non può registrare nulla oltre "IP xxxx ha aperto una connessione, ne abbiamo effettuato il proxy a backend.example.com:443". –

+1

Sì, ho trovato la documentazione su questo. Puoi aggiungere un error_log e impostarlo su debug per ottenere una sorta di output. – radtek