我正在try 为PostgreSQL server配置ssl证书.我在数据目录中创建了一个证书文件(server.crt)和密钥(server.key),并将参数SSL更新为"on",以启用安全连接.

我只希望服务器在客户端通过服务器证书进行身份验证,而不需要服务器端客户端的真实性.我使用psql作为客户端来连接和执行命令.

我正在使用PostgreSQL 8.4和Linux.我try 使用下面的命令连接到启用SSL的服务器

       psql "postgresql://localhost:2345/postgres?sslmode=require"

但我越来越

       psql: invalid connection option "postgresql://localhost:2345/postgres?sslmode"

我做错了什么?我在启用SSL模式的情况下try 连接到服务器的方式正确吗?只验证服务器而不验证客户端可以吗?

推荐答案

9.2以下的psql不接受选项的类似URL的语法.

SSL的使用可以由命令行上的sslmode=value选项或PGSSLMODE环境变量驱动,但默认值为prefer,SSL连接将首先自动try ,而无需指定任何内容.

带有conninfo字符串的示例(updated for psql 8.4)

psql "sslmode=require host=localhost dbname=test"

更多选项,请阅读manual page.

Postgresql相关问答推荐

PostgreSQL\d命令:有办法只 Select 一列吗?

JPA将没有时区的Postgres时间戳调整为服务器时区

postgres 如何计算多列哈希?

订阅标签保存在哪个表中?

如何在 PostgreSQL 中使用正则表达式删除单词之间的所有特殊字符和多余空格

PostgreSQL 中的复制槽是否会阻止删除 WALL,即使它们来自另一个数据库?

PostgreSQL ,从 2 个表中 Select ,但仅从表 2 中 Select 最新的元素

在查询中的复合外键/主键列上连接表

Select 空字段

Mac psql/readline - 未加载库

从局域网访问 PostgreSQL 服务器

MAC OS X 上的 Postgres 权限被拒绝

在函数中返回字段作为插入结果

如何防止用户看到其他数据库和其他数据库中的表?

如何将参数值添加到 pgadmin sql 查询?

设置 Phoenix 框架和 Ecto 以使用 UUID:如何插入生成的值?

Django 1.9.2 AssertionError:database connection isn't set to UTC

PostgreSQL 字符串(255) 限制 - Rails、Ruby 和 Heroku

错误:索引表达式中的函数必须在 Postgres 中标记为 IMMUTABLE

如何为 Postgresql 中的所有数据库创建具有只读权限的用户?