Digital Ocean PostgreSQL 数据库的 Strapi SSL 连接错误

问题描述 投票:0回答:1

我正在运行连接到 Digital Ocean 上的 PostgreSQL 数据库的 Strapi 应用程序,但遇到“自签名证书”错误。尽管正确设置了 DATABASE_SSL 环境变量并在我的 config/database.js 中使用 Digital Ocean 提供的 CA 证书,但在尝试连接到数据库时仍然面临 SSL 验证问题。

我正在寻找解决方案来解决 Strapi-PostgreSQL 设置中的 SSL 证书信任问题。

│   Error: self-signed certificate                              │
│       at TLSSocket.onConnectSecure (node:_tls_wrap:1545:34)   │
│       at TLSSocket.emit (node:events:513:28)                  │
│       at TLSSocket.emit (node:domain:489:12)                  │
│       at TLSSocket._finishInit (node:_tls_wrap:959:8)         │
│       at ssl.onhandshakedone (node:_tls_wrap:743:12)  
node.js postgresql ssl-certificate digital-ocean strapi
1个回答
0
投票

要解决使用 Digital Ocean 设置 Strapi-PostgreSQL 时出现的“自签名证书”错误,您可以尝试以下步骤:

  1. 确保CA证书正确:

    • 仔细检查您是否在 Strapi 数据库配置中正确提供了 Digital Ocean CA 证书 (
      config/database.js
      )。
    • 验证 CA 证书的格式是否正确且没有拼写错误。
  2. 安装CA证书:

    • 如果您尚未安装 Digital Ocean CA 证书,请确保在运行 Strapi 应用程序的计算机上安装 Digital Ocean CA 证书。您可能需要将其添加到系统的受信任证书存储中。
  3. 环境变量配置:

    • 验证您的 Strapi 环境配置中是否正确设置了
      DATABASE_SSL
      环境变量。
  4. 更新 PostgreSQL 连接字符串:

    • 不要使用
      ssl
      中的
      config/database.js
      选项配置 SSL,而是尝试直接在 PostgreSQL 连接字符串中添加
      ssl=true
      。例如:
      module.exports = ({ env }) => ({
        defaultConnection: 'default',
        connections: {
          default: {
            connector: 'bookshelf',
            settings: {
              client: 'postgres',
              connection: {
                host: env('DATABASE_HOST', '127.0.0.1'),
                port: env.int('DATABASE_PORT', 5432),
                database: env('DATABASE_NAME', 'strapi'),
                user: env('DATABASE_USERNAME', 'strapi'),
                password: env('DATABASE_PASSWORD', 'strapi'),
                ssl: true,
              },
              // ...
            },
            // ...
          },
        },
      });
      
    • 确保将占位符值替换为您的实际数据库连接详细信息。
  5. 重新启动 Strapi:

    • 对配置文件进行更改后,重新启动 Strapi 应用程序以应用更改。
  6. 检查 PostgreSQL 服务器配置:

    • 确保您的 PostgreSQL 服务器配置为使用 SSL。您可能需要调整 PostgreSQL 服务器设置以支持 SSL 连接。
  7. 更新 Node.js 和包:

    • 确保您使用的是最新版本的 Node.js 和 npm。有时更新这些依赖项可以解决 SSL 相关问题。

如果尝试这些步骤后问题仍然存在,请考虑查阅 Digital Ocean 和 Strapi 文档或论坛,以获取与您的环境相关的具体指南。此外,查看 PostgreSQL 日志中是否有任何与 SSL 相关的错误可能会更深入地了解问题。

© www.soinside.com 2019 - 2024. All rights reserved.