如何在PostgreSQL上配置SSL

如何在PostgreSQL上配置SSL

浏览次数:
信息来源: 用户投稿
更新日期: 2026-05-02
文章简介

数据库安全通常是组织最关心的问题之一。开箱即用的PostgreSQL不提供足够的保护措施来确保数据保护和隐私。因此,需要采取额外措施来确保数据隐私和安全。为与服务器建立的连接启用SSL身份验证是确保数

2025阿里云双十一服务器活动

数据库安全通常是组织最关心的问题之一。开箱即用的PostgreSQL不提供足够的保护措施来确保数据保护和隐私。因此,需要采取额外措施来确保数据隐私和安全。为与服务器建立的连接启用SSL身份验证是确保数据隐私的方法之一。PostgreSQL支持与数据库服务器建立的SSL连接,从而确保客户端和服务器之间交换的所有通信都是加密的。

在本教程中,我们将演示如何为PostgreSQL数据库服务器启用SSL连接。

第1步:安装PostgreSQL服务器

您需要在Linux系统上安装PostgreSQL服务器。如果您的服务器上已经安装了PostgreSQL,请随时跳到下一步。

在本指南中,我们将从在RockyLinux8上安装最新版本的PostgreSQL(PostgreSQL14)开始。

通过SSH登录到您的服务器。接下来,刷新存储库并将包升级到最新版本。

AppStream存储库未提供最新版本的PostgreSQL。要验证这一点,请列出可用的PostgreSQL模块。

从上面的输出来看,存储库提供的最新版本的PostgreSQL是PostgreSQL13.x。要安装最新版本的PostgreSQL,请将PostgreSQL存储库添加到您的系统。

接下来,禁用默认的PostgreSQL存储库:

接下来,按如下方式安装PostgreSQL14Server和客户端。

此后,按如下方式初始化PostgreSQL数据库。

默认情况下,PostgreSQL安装在RockyLinux上时不会自动启动。因此,启动数据库服务。

此外,使其在系统启动时启动。

要确认PostgreSQL服务正在运行,请执行以下命令:

上面的输出确认PostgreSQL服务器已启动并正在运行。默认情况下,PostgreSQL侦听端口5432,您可以通过运行以下命令来确认这一点。

您应该得到以下输出,确认一切正常。

第2步:为Postgres用户配置密码

安装PostgreSQL时,会在系统中创建一个名为的默认用户。这是一个超级用户,拥有执行几乎任何任务的访问权限,包括管理数据库、表、模式函数和PostgreSQL数据库中的任何其他对象。

Postgres用户使用ident认证方式,不设置密码。出于安全原因,建议您设置密码以防止潜在的违规行为。

然后使用如图所示的查询设置用户密码。

第3步:为PostgreSQL服务器生成SSL证书

要使SSL与PostgreSQL一起工作,您需要生成三个证书文件:

  • server.key-这是私钥文件
  • server.crt-这是服务器证书文件
  • root.crt-这是受信任的根证书
  • 如何在PostgreSQL上配置SSL

    接下来,生成一个2048位的AES加密的RSA私钥,如下所示。

    在创建私钥期间,系统会提示您输入密码。输入并确认。

    您稍后可以通过运行以下命令确认密钥存在:

    私钥有一个与之关联的密码。为了进一步使用此密钥,您需要删除密码。为此,请运行以下命令:

    再一次,重新输入密码并按ENTER。

    第4步:应用所需的权限和所有权

    为了增强安全性,您需要将私钥的只读权限分配给root用户,如图所示。

    此外,将密钥的所有权设置为postgres用户和组。

    第5步:创建服务器证书文件

    现在,根据私钥生成一个自签名证书文件。以下证书文件的有效期为365天。

    该命令将要求您提供一些将合并到证书文件中的信息。因此,请相应地填写所有详细信息。

    由于您使用的是自签名证书,因此您将通过制作服务器证书文件的副本将其用作受信任的根证书,如图所示。

    第6步:配置PostgreSQL以使用SSL

    下一步是配置PostgreSQL以使用SSL。访问位于目录内的配置文件。

    在下,找到参数并将其设置为允许来自所有外部主机的连接。

    在该部分中,取消注释以下参数并设置值,如下所示。

    保存更改并退出文件。接下来,打开配置文件。这是PostgreSQL客户端身份验证配置文件,指定允许连接哪些主机以及如何对客户端进行身份验证。

    在下,按如下方式修改该行以允许来自所有主机的连接。

    接下来,在文件末尾添加以下行以启用SSL并允许来自所有主机的连接。

    保存更改并退出配置文件。要使更改生效,请重新启动PostgreSQL。

    如果启用了firewalld,请允许Postgresql服务,如图所示

    此时,PostgreSQL已配置为使用SSL进行远程连接。为此,我们将使用用户postgres登录到数据库服务器,如图所示

    该标志表示我们用来访问数据库服务器的登录用户

    该标志指定PostgreSQL正在侦听的端口(默认为5432)

    下面的输出确认SSL已启用并且我们使用的是自签名证书。

    在本教程中,我们演示了如何使用自签名SSL证书在PostgreSQLServer上启用SSL支持。我们为PostgreSQL服务器上配置的所有数据库和用户启用了SSL连接。服务器将侦听默认PostgreSQL端口上的所有传入连接,并要求客户端使用SSL。

    标签:
    云原生应用定义和镜像构建(云原生应用平台)
    « 上一篇
    返回列表
    下一篇 »

    如本文对您有帮助,就请抽根烟吧!