pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
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
把证书转换为自签名证书,并把密钥和证书复制到服务器将要寻找它们的 位置。
译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。