迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 数据库 > PostgreSQL >

以 SSL 模式连接到 PostgreSQL

作者:迹忆客 最近更新:2023/03/20 浏览次数:

当我们尝试连接数据库时,Postgres 使用 SSL 来验证连接的安全性。它在 HTTP 中默认禁用,但在 HTTPS 中,我们需要连接的 SSL 模式才能在 Postgres 数据库中执行任何操作。

如果连接不是私有的,则可以有多个攻击参数。任何人都可以通过数据库请求-响应轻松地使用嗅探工具。

PostgreSQL 中有哪些 SSL 模式

Postgres 提供了不同类型的 SSL 模式。首先,让我们看一下 Postgres 的通用连接字符串。

const connectionString = "postgres://<database_username>:<database_userpassword>@<hostaddress>:<port_no>/<database_name>"

现在,我们可以添加参数 sslmode,如下所示。

const connectionString = "postgres://<database_username>:<database_userpassword>@<hostaddress>:<port_no>/<database_name>?sslmode=<ssl_mode>"

这是 Postgres 提供的 SSL 模式列表。

sslmode 窃听保护 中间人保护 描述
disable 它不会关心安全性。不会加密任何数据。
allow 也许 它不会关心安全性并加密连接。
prefer 也许 它不会强制使用加密;如果服务器支持加密的开销,那么它将加密。
require 是的 加密数据,它会面临一些加密的开销,而网络可以确保用户想要连接到正确的服务器。
verify-ca 是的 取决于 CA 政策 加密数据,加密的开销并始终连接到受信任的服务器。
verify-full 是的 是的 数据将被加密,用户接受开销,网络和服务器都是受信任的,并且只连接到被询问的特定服务器。

你也可以在环境变量中设置此标志。

PGSSLMODE=verify-full PGSSLROOTCERT=ca.pem

在这里,ca.pem 是关键。你需要从 CA 收集它; CA 代表证书颁发机构。

这是 Postgres 官方文档中关于 SSL 模式的说明。

Using NULL-SHA or NULL-MD5 ciphers, authentication can be done without any encryption overhead. A man-in-the-middle, on the other hand, might read and pass communications between the client and the server. In addition, as compared to the overhead of authentication, encryption has a low overhead. NULL ciphers are not recommended for these reasons.

此外,你可以查看官方文档此处。他们展示了如何在使用 SSL 模式时对证书进行自签名。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 PSQL 中运行 SQL 文件

发布时间:2023/03/20 浏览次数:178 分类:数据库

本文解释了如何直接从终端/命令行或 psql shell 运行 SQL 文件。为此,你需要指定主机名、端口、用户名和数据库名称。

在 PostgreSQL 中使用循环

发布时间:2023/03/20 浏览次数:124 分类:PostgreSQL

在 PL/SQL 中,你可能需要在 Postgres 中使用循环。我们可以使用 FOR 和 WHILE 语句来创建循环。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便