首页 > 解决方案 > 从 HTTP 代理后面通过 TLS/SSL 连接到远程 PostgreSQL 集群

问题描述

我在MS Azure Database for PostgreSQL上托管了一个灵活的 PostgreSQL 集群。该服务器需要 TLS/SSL 访问,如文档中所示,例如:

psql "sslmode=verify-full sslrootcert=c:\ssl\DigiCertGlobalRootCA.crt.pem host=mydemoserver.postgres.database.azure.com dbname=postgres user=myadmin"

或者没有“验证完整”它也可以工作:

psql "sslmode=require host=mydemoserver.postgres.database.azure.com dbname=postgres user=myadmin"

当我直接连接而不使用代理服务器时,一切正常。但在办公室,我们有一个公司 HTTP 代理/防火墙,配置如下http://192.168.X.X:3128。激活代理后,与 Azure 的连接将失败。

我试图用来ssh设置代理隧道,如下所示:

ssh -p 5432 <Azure DB username>@<Azure DB host: ....database.azure.com> -L 3128:192.168.X.X:5432

但这不起作用(连接超时错误)。还尝试使用网络上的一些示例通过 PuTTY 配置连接,但也无济于事。

问题是:是否有可能从 HTTP 代理后面连接到远程集群(Azure 和 Google Cloud 都强制执行 SSH 访问)?

标签: postgresqlhttpsshproxyhttp-proxy

解决方案


推荐阅读