Coolify logoCoolify

数据库 SSL ^v4.0.0-beta.399

Coolify 中的数据库 SSL 可加密应用程序与数据库之间的通信,确保数据安全。

通过自动绑定和生成证书,此功能简化了安全设置。该功能首次引入于 Coolify 版本 v4.0.0-beta.399

简介

数据库 SSL 通过加密与数据库交换的数据来增加额外的安全层。本指南涵盖:

  • 为您的数据库连接启用 SSL 模式。
  • 根据您的安全需求选择合适的 SSL 模式。
  • 管理用于验证数据库连接的 CA 证书。

1. 如何启用数据库 SSL

要使用 SSL 保护数据库连接:

  1. 访问数据库设置
    在 Coolify 仪表板中,访问要保护的数据库的常规设置。

    Coolify 仪表板截图
  2. 启用 SSL 模式
    选中 启用 SSL 选项以激活数据库连接的 SSL。

    Coolify 仪表板截图
  3. 选择 SSL 模式
    从下拉菜单中选择 SSL 模式。例如,选择 verify-full 以获得最高安全性。

    Coolify 仪表板截图

注意

启用 SSL 后,若要使用 SSL,您需要为应用使用包含 SSL 配置的新连接 URL。

如果您不使用新 URL,数据库连接将不会使用 SSL(在大多数情况下)。

Coolify 会自动将生成的证书和密钥绑定到所需位置,因此只有在希望使用自定义证书时才需要进行手动更改。

2. SSL 模式详解

Coolify 支持多种 SSL 模式,每种模式提供不同的安全级别:

Coolify 仪表板截图

PostgreSQL

  • allow(不安全)
    此模式允许加密和非加密连接。它不强制使用 SSL,因此如果 SSL 失败,连接将回退到非加密状态。

    此选项被认为是不安全的,因为它允许非加密流量。

  • prefer(安全)
    使用此模式时,Coolify 将首先尝试使用 SSL。如果可用 SSL 连接,则使用该连接,否则将回退到非加密连接。

    虽然此选项优先使用加密,但它不能保证每个连接都是安全的。

  • require(安全)
    此模式强制要求连接必须加密。但是,它不会对服务器证书执行任何检查。

    这意味着连接是加密的,但服务器的身份未经验证。

  • verify-ca(安全)
    此选项更进一步,不仅加密连接,还验证服务器的证书是否由受信任的证书颁发机构(CA)签名。它不检查主机名是否与证书匹配。

    此模式在安全性和设置简便性之间取得了平衡。

  • verify-full(安全)
    这是最安全的模式。它不仅加密连接并验证证书颁发机构,还确认服务器的主机名与证书匹配。

    这提供了充分的保证,确保您连接到的是正确的服务器,类似于 Cloudflare Origin Certificate 设置提供的安全级别。

其他数据库

  • MySQL & MongoDB:
    仅支持以下模式:prefer、require、verify ca、verify full
  • MariaDB、Redis、KeyDB、DragonFly DB:
    UI 中未显示任何 SSL 模式。
  • Clickhouse DB:
    不支持 SSL,没有启用 SSL 的复选框,也没有下拉选项。

开发者注意

低于 require 的模式并非 100% 安全,因为它们仅加密连接而未完全验证服务器身份。

对于高于 require 的模式(即 verify-caverify-full),您必须将 Coolify CA 证书挂载到连接到数据库的容器中,以增强安全性。

请注意,在大多数情况下(例如 PostgreSQL),仅启用 SSL 是无效的,除非您使用强制使用 SSL 的新连接 URL。

然而,对于某些数据库(如基于 Redis 的数据库),在 UI 中启用 SSL 会强制执行该模式。

提示

为了获得最大安全性,建议使用 verify-full(当可用时)。

3. CA SSL 证书管理

Coolify 自动管理 CA 证书,确保验证安全的数据库连接。

在仪表板中,进入 服务器 > 您的服务器名称 > 代理 > 高级,您可以看到以下选项:

Coolify 仪表板截图
  • CA SSL 证书:显示当前使用的 CA 证书。
  • 保存证书:允许您保存证书的本地副本。
  • 重新生成证书:如需,可生成新的 CA 证书。

推荐配置

为了安全连接,请将 Coolify CA 证书挂载到所有需要连接到数据库的容器中。

推荐的绑定挂载路径为:

/data/coolify/ssl/coolify-ca.crt:/etc/ssl/certs/coolify-ca.crt:ro

4. 使用自定义 CA 证书

如果您希望使用自己的 CA 证书而不是 Coolify 生成的证书:

  1. 准备您的 CA 证书
    确保您的证书采用 PEM 格式。

  2. 上传您的证书
    在以下位置上传您的自定义 CA 证书:

    /data/coolify/ssl/coolify-ca.crt
  3. 挂载证书
    确保需要数据库访问的容器将证书挂载到:

    /data/coolify/ssl/coolify-ca.crt:/etc/ssl/certs/coolify-ca.crt:ro

On this page