http.proxyHost puede enrutar un cliente HTTP participante, pero no hace nada por PostgreSQL JDBC. PostgreSQL envía su protocolo de base de datos, no una solicitud HTTP.

La URL de conexión JDBC debe seguir nombrando el servidor de base de datos y la base de datos. Sustituir su servidor por una dirección de proxy HTTP no puede enseñar CONNECT al controlador.

Para un servicio SOCKS, investigue la implementación de socket por debajo de JDBC. Java expone estas propiedades de inicio para los sockets participantes:

-DsocksProxyHost=203.0.113.10 -DsocksProxyPort=1080

Sustituya el punto de conexión de la documentación. Son argumentos de JVM, no parámetros de URL de JDBC. Verifique la ruta de socket real del JDK/controlador y cualquier fábrica de sockets personalizada antes de esperar que los utilice.

Las propiedades afectan a todo el proceso, así que incluya otras conexiones en la evaluación del impacto. Un conector dedicado documentado o un túnel aprobado pueden ofrecer un límite más claro cuando solo el tráfico de base de datos debe tomar la ruta.

El proxy sigue necesitando permiso y accesibilidad al puerto de la base de datos. Después, la base de datos aplica las reglas de acceso del host, el TLS de destino y su propio inicio de sesión. Conserve el nombre de host del certificado y mantenga la cuenta de base de datos separada de la cuenta del proxy.

Registre la primera etapa fallida: conexión al proxy, negociación, TCP de base de datos, TLS o inicio de sesión en la base de datos. Esa evidencia identifica el siguiente cambio; ajustar repetidamente propiedades HTTP sin uso no puede lograrlo.

Artículos relacionados