连接AWS RDS服务器时为何出现‘no encryption’错误?
解决AWS RDS PostgreSQL连接报错:no pg_hba.conf entry...no encryption
核心原因
这个报错本质是你的连接请求未启用加密,但AWS RDS PostgreSQL默认要求加密连接,免费套餐实例的配置尤其如此。
具体解决步骤
- 检查RDS的SSL强制设置:登录AWS控制台,找到你的RDS实例,进入「配置」标签页,确认「需要SSL连接」是否开启。如果是,所有连接必须携带加密参数。
- 调整连接方式:
- 用psql命令行连接时,添加
sslmode=require参数,示例:psql -h 你的RDS端点地址 -U 数据库用户名 -d 数据库名称 -sslmode=require - 用可视化客户端(比如DBeaver、Navicat)时,在连接设置里找到SSL选项,勾选「要求SSL」类选项即可,无需手动导入证书(AWS RDS PostgreSQL会自动验证)。
- 用psql命令行连接时,添加
- 修正安全组配置:你之前写的
:://0是错误格式,正确的IPv6全开放地址是::/0,确保安全组入站规则中,PostgreSQL默认端口5432的源地址设置正确(要么是你的公网IP,要么是0.0.0.0/0+::/0)。 - 重要提示:不要尝试修改
pg_hba.conf,AWS RDS是托管服务,用户没有权限直接编辑该文件,所有连接控制均通过RDS的SSL设置和安全组完成。
内容的提问来源于stack exchange,提问作者moosecles
相关产品推荐
相关产品推荐

