↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

支持中的版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发中的版本: 19 / 20devel
已结束支持的版本: 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.3 已结束支持。 请参阅 当前版本手册.

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

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

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

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

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

openssl req -new -text -out server.req

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

openssl rsa -in privkey.pem -out server.key
rm privkey.pem

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

openssl req -x509 -in server.req -text -key server.key -out server.crt
chmod og-rwx server.key

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

报告文档问题

阅读 上游文档. 反馈更正前请先核对 当前版本手册.