您查看的文章来源于http://www.oklinux.cn
客户端身份验证要求下面的文件必须位于客户机的主目录 ~/.postgresql 中:
?postgresql.key
?postgresql.crt
?root.crt(检验服务器身份验证)
?root.crl(证书撤销列表,可选)
和服务器的 root.crt 一样,客户机的 root.crt 文件包含了由一个可信的第三方 CA 签名的服务器证书的列表。最后一个文件 root.crl 是可选的,用于撤销服务器证书。
要获取证书,需要客户机和服务器都向 CA 提交了证书请求 client.csr 和 server.csr。证书只有在生成了它们的密匙后才能被创建,如下所示。
openssl req -new -newkey rsa:1024 -nodes -keyout client.key -out client.csropenssl req -new -newkey rsa:1024 -nodes -keyout server.key -out server.csr
可以使用多种方法执行 openssl 实用工具来获得证书。例如,您可以对它们施加一个生命周期,或者使用自签名证书来生成它们,这样就不需要涉及到 CA。
2.您现在可以使用三种方法生成客户机和服务器证书。您可以:
?获得由可信 CA 签名的 client.csr 和 server.csr。
?通过使用 openssl perl 实用工具 CA.pl 成为 CA。
?创建自签名证书并分别将它们添加到服务器和客户机的 root.crt 文件中。
3.下面是一组用于 CA.pl 的命令,它们被进行了缩减。查看 CA.pl 手册页获得有关证书请求的更多信息。
?CA.pl -newca(创建新 CA)
?CA.pl -newreq(使用私匙创建一个证书请求)
?CA.pl -signreq (使用您创建的 CA 对证书请求签名)
对于坚持使用纯开源技术的人,可以在 http://www.cacert.org 找到 “免费” 的证书。
清单 24. 一个示例证书
-----BEGIN CERTIFICATE-----MIIC9TCCAl6gAwIBAgIJAMuhpY o4QR MA0GCSqGSIb3DQEBBQUAMFsxCzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxFDASBgNVBAMTC0NvbW1vbiBOYW1lMB4XDTA3MDIxMjEyMjExNVoXDTA3MDMxNDEyMjExNVowWzELMAkGA1UEBhMCQVUxEzARBgNVBAgTClNvbWUtU3RhdGUxITAfBgNVBAoTGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEUMBIGA1UEAxMLQ29tbW9uIE5hbWUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKA4nX/eBKsPJI1DmtH2wdJE9uZf IRMUWYrAEDL4F6NEuo2 BsIoOBKS/rrV77Itet9kduJCQ6k/z2ouAVb4muXpJALDjJpYBXt9wqZf 2p1n9dqDw1rCWBjXIdhOcA3DDvu0Ig1FUfm8GS97evxM5IJBECRnK/5JZroXCRSHcpAgMBAAGjgcAwgb0wHQYDVR0OBBYEFElEWNUCV 61itXp86czrDe35vjrMIGNBgNVHSMEgYUwgYKAFElEWNUCV 61itXp86czrDe35vjroV kXTBbMQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMRQwEgYDVQQDEwtDb21tb24gTmFtZYIJAMuhpY o4QR MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAaFzbUmXcWVzqaVeEpZkNwF/eVh110qIUUxXGdeKZGNXIyK67GCUYSG/IFkZ/hrGLeqElLrdmU0mHd2Enq2IuvhxnsOVTTickjKospJvlHPYSumkXx0Xpzey9PhjLh1chpxNGTATKb8ET8YZvBRrDHl/EMPIjLd62iSR/ugFe8go=-----END CERTIFICATE-----
4.假设您已经生成了自签名证书,将它们复制到正确的位置并编辑 root.crt。 客户机证书被保存在服务器的 root.crt 中,而服务器的证书被保存在客户机的 root.crt 中。
5.重启服务器后监视日志消息,确定一切配置正常。
服务器的默认行为将仍然使用加密。这可以通过编辑 postgresql.conf 中的名称对 ssl_ciphers='NULL' 并重启服务器禁用。慎重考虑您的决定:将 ssl_ciphers 设置为 NULL 就可以禁用加密。
结束语
在 本文中,您了解了有关 PostgresSQL 数据库服务器保护的基本知识。有关这个话题还涉及到许多内容,但是一篇文章所能介绍的内容是有限的。目前有关 PostgreSQL 的介绍还不够丰富。也许,借助您的一点帮助,我们可以更深入地了解 PostgreSQL 安全性。