Perché un'impostazione proxy HTTP non risolve una connessione PostgreSQL
Separare il protocollo di database di PostgreSQL dal routing HTTP e verificare il percorso socket necessario per SOCKS.
http.proxyHost può instradare un client HTTP partecipante ma non fa nulla per PostgreSQL JDBC. PostgreSQL invia il suo protocollo di database, non una richiesta HTTP.
L'URL di connessione JDBC deve comunque indicare il server di database e il database. Sostituire il suo server con un indirizzo proxy HTTP non può insegnare CONNECT al driver.
Per un servizio SOCKS, esaminare l'implementazione del socket sotto JDBC. Java espone queste proprietà di avvio per i socket partecipanti:
-DsocksProxyHost=203.0.113.10 -DsocksProxyPort=1080Sostituire l'endpoint della documentazione. Questi sono argomenti JVM, non parametri URL JDBC. Verificare il percorso socket effettivo di JDK/driver e qualsiasi factory di socket personalizzata prima di aspettarsi che li utilizzi.
Le proprietà valgono per l'intero processo, quindi includere altre connessioni nella valutazione d'impatto. Un connettore dedicato documentato o un tunnel approvato possono offrire un confine più chiaro quando solo il traffico del database deve seguire il percorso.
Il proxy ha comunque bisogno di autorizzazione e raggiungibilità della porta del database. Il database applica poi le regole di accesso dell'host, il TLS di destinazione e il proprio login. Conservare il nome host del certificato e tenere l'account del database separato dall'account del proxy.
Registrare la prima fase non riuscita: connessione al proxy, negoziazione, TCP del database, TLS o login al database. Questa evidenza identifica la modifica successiva; regolare ripetutamente proprietà HTTP inutilizzate non può farlo.