28.13. SSL 支持

PostgreSQL 本机支持使用 SSL 连接对客户端/服务器通讯进行加密, 以增强安全性。参阅 Section 16.7 获取有关服务器端 SSL 功能的细节。

如果服务器要求客户端的证书,libpq 将发送存储在用户家目录下 ~/.postgresql/postgresql.crt 文件里的证书。并且必须有一个匹配的私钥文件 ~/.postgresql/postgresql.key, 并且必须不是全局可读的。 (在 Microsoft Windows 上,这些文件的名字是%APPDATA%\postgresql\postgresql.crt%APPDATA%\postgresql\postgresql.key。)

如果在用户的家目录里出现了 ~/.postgresql/root.crtlibpq 将使用存储在里面的证书列表验证服务器的证书。 (在 Microsoft Windows 上,文件名是 %APPDATA%\postgresql\root.crt。) 如果服务器没有提供证书,那么 SSL 连接将失败;因此,要使用这个特性,服务器必须也有一个 root.crt 文件。

如果你在你的应用内部使用 SSL (除了在 libpq 里面之外), 你可以使用 PQinitSSL(int) 告诉 libpq,你的应用已经初始化了 SSL 库。