在PostgreSQL中配置SSL,你需要在postgresql.conf
文件中设置相关的参数,并且需要服务器的SSL证书和私钥。以下是配置SSL的基本步骤:
- 生成SSL证书和私钥。
- 配置
postgresql.conf
以启用SSL。 - 配置客户端以使用SSL连接。
生成SSL证书和私钥
可以使用OpenSSL来生成自签名的证书和私钥:
openssl req -new -text -out server.req
openssl rsa -in privkey.pem -out server.key
openssl req -x509 -in server.req -text -key server.key -out server.crt
配置postgresql.conf
在postgresql.conf
中设置以下参数:
ssl = on
ssl_cert_file = 'server.crt' # 证书文件路径
ssl_key_file = 'server.key' # 私钥文件路径
配置客户端
在客户端连接字符串中使用sslmode
参数来指定如何使用SSL:
psql "host=myserver dbname=mydb user=myuser sslmode=require"
sslmode
可以设置为:
disable
- 不使用SSL。allow
- 如果服务器请求SSL,则使用SSL。prefer
- 尝试使用SSL,但如果不可用,则不使用。require
- 必须使用SSL连接。verify-ca
- 类似于require
,但还会验证服务器的SSL证书是否由可信CA签发。verify-full
- 类似于verify-ca
,但还会验证证书的主机名是否与服务器的主机名匹配。
确保将myserver
, mydb
, myuser
, server.crt
, 和 server.key
替换为适当的值。