Lol*_*lly 60 postgresql ssl ssl-certificate postgresql-8.4
我正在尝试为postgreSQL服务器配置ssl证书.我在数据目录中创建了证书文件(server.crt)和密钥(server.key),并将参数SSL更新为"on"以启用安全连接.
我只想要在客户端使用服务器证书对服务器进行身份验证,而不要求服务器端客户端的真实性.我使用psql作为客户端来连接和执行命令.
我正在使用PostgreSQL 8.4和Linux.我尝试使用以下命令连接到启用了ssl的服务器
psql "postgresql://localhost:2345/postgres?sslmode=require"
Run Code Online (Sandbox Code Playgroud)
但我得到了
psql: invalid connection option "postgresql://localhost:2345/postgres?sslmode"
Run Code Online (Sandbox Code Playgroud)
这里有什么问题?我尝试连接到服务器的方式是否启用了ssl模式是正确的?是否可以仅验证服务器而不是客户端?
请帮帮我.
Dan*_*ité 95
psql
9.2以下版本不接受这种类似URL的语法.
SSL的使用可以通过sslmode=value
命令行上的选项或PGSSLMODE环境变量来驱动,但默认情况下prefer
,SSL连接将首先自动尝试,而不指定任何内容.
conninfo字符串示例(针对psql 8.4更新)
psql "sslmode=require host=localhost dbname=test"
Run Code Online (Sandbox Code Playgroud)
阅读手册页以获取更多选项.
Sab*_*rov 16
那么,如果连接需要 SSL 模式,您可以在 CLI 中使用以下命令提供所有信息:
psql "sslmode=verify-ca sslrootcert=server-ca.pem sslcert=client-cert.pem sslkey=client-key.pem hostaddr=your_host port=5432 user=your_user dbname=your_db"
Run Code Online (Sandbox Code Playgroud)
小智 15
psql --set=sslmode=require -h localhost -p 2345 -U thirunas \
-d postgres -f test_schema.ddl
Run Code Online (Sandbox Code Playgroud)
小智 8
发现以下选项可用于为自签名 postgres 实例提供所有文件
psql "host={hostname} sslmode=prefer sslrootcert={ca-cert.pem} sslcert={client-cert.pem} sslkey={client-key.pem} port={port} user={user} dbname={db}"
Run Code Online (Sandbox Code Playgroud)
在 psql 客户端 v12 上,我在 psql 客户端中找不到激活sslmode=verify-full
.
我最终使用了环境变量:
PGSSLMODE=verify-full PGSSLROOTCERT=server-ca.pem psql -h your_host -U your_user -W -d your_db
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
108894 次 |
最近记录: |