前置知识: PostgreSQL

SSL-TLS加密连接

1 minIntermediate2026/6/14

PostgreSQL SSL/TLS加密连接:证书配置、强制加密、客户端证书验证

1. 配置SSL

# postgresql.conf
ssl = on
ssl_ca_file = '/etc/postgresql/root.crt'
ssl_cert_file = '/etc/postgresql/server.crt'
ssl_key_file = '/etc/postgresql/server.key'

2. 强制SSL

# pg_hba.conf
hostssl all all 0.0.0.0/0 md5       -- 只允许SSL连接
hostnossl all all 0.0.0.0/0 reject   -- 拒绝非SSL连接

3. 客户端证书验证

# pg_hba.conf
hostssl all all 0.0.0.0/0 cert       -- 要求客户端证书
# 客户端连接
psql "host=server dbname=mydb user=alice sslmode=verify-full sslcert=client.crt sslkey=client.key sslrootcert=root.crt"

4. sslmode 选项

模式验证级别
disable不使用SSL
allow优先非SSL,失败再SSL
prefer优先SSL,失败再非SSL
require必须SSL,不验证证书
verify-ca必须SSL,验证CA
verify-full必须SSL,验证CA和主机名