首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在服务器和客户端之间使用SSL/TLS?

如何在服务器和客户端之间使用SSL/TLS?
EN

Database Administration用户
提问于 2016-01-25 11:56:35
回答 1查看 4.6K关注 0票数 2

在保安方面我不太了解。我正在云服务中部署一个带有数据库的虚拟机。我想加密此服务器与任何客户端之间的所有通信。我怎么能这么做?

更多信息:我从postgres文档[12]中阅读了很多材料,但我无法理解其中的内容。我跟踪了本教程,现在我有了以下文件:

代码语言:javascript
复制
valter@eniac:test$ ll
total 28
drwxr-xr-x 2 valter valter 4096 Jan 25 12:54 ./
drwxr-xr-x 3 root   root   4096 Jan 25 12:50 ../
-rw-rw-r-- 1 valter valter 1834 Jan 25 12:53 privkey.pem
-rw-rw-r-- 1 valter valter 4783 Jan 25 12:54 server.crt
-rw------- 1 valter valter 1675 Jan 25 12:53 server.key
-rw-rw-r-- 1 valter valter 3672 Jan 25 12:53 server.req

但我不知道该怎么处置他们。root.crtroot.crt文件在哪里?我怎样才能产生它们?我把这些生成的文件放在哪里?在客户端我该怎么做?

EN

回答 1

Database Administration用户

回答已采纳

发布于 2016-01-25 17:43:48

您只想在服务器上使用客户端用于验证服务器的证书吗?(这是正常的运作方式)。然后,服务器使用密码挑战对客户机进行身份验证,就像不使用ssl一样。

还是要使用客户端证书对服务器以及服务器对客户端进行身份验证?这很少见,因为它要求证书颁发机构向所有用户颁发证书,并要求用户正确管理证书。

假设是第一个,您就不需要服务器上的root.crt文件。现在所需要做的就是编辑postgresql.conf以转换ssl=on,并编辑pg_hba.conf以要求或允许客户端使用ssl (hostssl需要它,或者host允许它)。

请注意,使用默认的客户端配置(至少如果客户端是psql),您真正从使用ssl获得的只是加密,而不是真正的服务器身份验证。这是因为客户机只接受服务器发送的任何证书,并使用该证书设置加密通道。因此,坏人可以使用自签名证书运行PostgreSQL服务器,如果它可以欺骗客户端连接到它,而不是真正的PostgreSQL服务器,那么他们会很高兴地连接到它并向它发送查询。

票数 6
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/127210

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档