Skip to content

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

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

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

介绍

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

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

1. 如何启用数据库 SSL

要通过 SSL 保护您的数据库连接:

  1. 访问数据库设置
    在 Coolify 仪表板中,访问您想要保护的数据库的一般设置。

  2. 启用 SSL 模式
    勾选 启用 SSL 选项以激活数据库连接的 SSL。

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

注意:

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

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

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

2. SSL 模式说明

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

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 证书,确保安全的数据库连接得到验证。

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

  • CA SSL 证书:显示当前使用的 CA 证书。
  • 保存证书:允许您保存证书的本地副本。
  • 重新生成证书:如果需要,可以生成新的 CA 证书。

推荐配置

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

推荐的绑定挂载如下:

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

4. 使用自定义 CA 证书

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

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

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

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

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