首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用nginx作为postgresql连接的ssl反向代理?

如何使用nginx作为postgresql连接的ssl反向代理?
EN

Server Fault用户
提问于 2023-03-30 13:17:42
回答 1查看 347关注 0票数 1

我想要实现的是

Postgresql数据库 -透明TCP - 云上的客户

Postgresql数据库 -透明TCP - 跳转服务器上的nginx -SSL 云外的客户端

我想在带有SSL参数的流中添加nginx反向代理的另一层SSL加密。

nginx.conf中添加的配置是这样的(已经制作了SSL证书和密钥)

代码语言:javascript
运行
复制
stream{
        upstream pg{
                server [postgresql server ip]:5432;
        }
        server{
                listen  5430;
                #ssl_preread on;
                ssl_protocols       TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
                ssl_ciphers         AES128-SHA:AES256-SHA:RC4-SHA:DES-CBC3-SHA:RC4-MD5;
                ssl_certificate /etc/nginx/cert/server.crt;
                ssl_certificate_key /etc/nginx/cert/server.key;
                ssl_session_timeout 2h;
                ssl_verify_client off;
                proxy_pass pg;
        }
}

我试着telnet [jump server public ip] 5430,连接打开了。但是,当我使用dbeaver客户端连接到该网关时,它响应为‘服务器上不允许使用SSL’。怎么啦?postgresql是否知道这个dbeaver客户端与nginx的连接是SSL加密的,并回答了一个错误消息?

EN

回答 1

Server Fault用户

回答已采纳

发布于 2023-03-30 14:35:20

您不能这样做,因为PostgreSQL中的TLS不是非TLS连接的简单包装器,就像HTTPS是HTTPS那样。相反,它从一些简单的通信开始,然后升级到TLS。正因为如此,反向代理不能简单地终止TLS并转发内部应用程序数据,而是必须实际实现PostgreSQL使用的协议的一些基础知识,而nginx并不提供此功能。

有关详细信息,请参阅用于PostgreSQL的NGINX终止

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1127529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档