↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

受支持版本: 当前版本 (18) / 17 / 16 / 15 / 14
测试与开发版本: 19 / devel
不受支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1
历史版本PostgreSQL 7.2 已于 2007 年 2 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本。

3.7. 使用 SSL 的安全 TCP/IP 连接 #

PostgreSQL 原生支持通过 SSL 的连接来 加密客户端/服务器通信,以提高安全性。这要求客户端和服务器系统上 都安装了 OpenSSL,并且构建时启用了相应 支持(见 第 1 章)。

编译了 SSL 支持后,PostgreSQL 服务器可以用 -l(ell)参数启动以启用 SSL 连接。以 SSL 模式启动时, 服务器会在数据目录中寻找 server.key 和 server.crt 文件。这两个文件应分别包含服务器私钥和 证书。这些文件必须正确设置,启用了 SSL 的服务器才能启动。如果 私钥受口令保护,服务器会提示输入口令,输入之前不会启动。

服务器会在同一个 TCP/IP 端口上同时监听标准连接和 SSL 连接,并与 每个连接的客户端协商是否使用 SSL。关于如何在服务器端强制某些 连接使用 SSL,见 第 4 章。

关于如何创建服务器私钥和证书的细节,请参考 OpenSSL 文档。可以使用简单的自签名证书来开始 测试,但在生产环境中应使用由 CA(全球性 CA 或本地 CA 之一)签名的证书,以便客户端能验证 服务器的身份。要快速创建一个自签名证书,使用以下 OpenSSL 命令:

openssl req -new -text -out cert.req

填写 openssl 询问的信息。确保把本地主机名输入为 Common Name;challenge password 可以留空。该脚本会生成一个受 passphrase 保护的密钥;它不接受少于四个字符的 pass phrase。要去 除 passphrase(如果想让服务器自动启动就必须去除),运行命令

openssl rsa -in privkey.pem -out cert.pem

输入旧 passphrase 以解锁现有密钥。然后执行

openssl req -x509 -in cert.req -text -key cert.pem -out cert.cert
cp cert.pem $PGDATA/server.key
cp cert.cert $PGDATA/server.crt

把证书转换为自签名证书,并把密钥和证书复制到服务器将要寻找它们 的位置。

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。