我正在运行连接到 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)
要解决使用 Digital Ocean 设置 Strapi-PostgreSQL 时出现的“自签名证书”错误,您可以尝试以下步骤:
确保CA证书正确:
config/database.js
)。安装CA证书:
环境变量配置:
DATABASE_SSL
环境变量。更新 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,
},
// ...
},
// ...
},
},
});
重新启动 Strapi:
检查 PostgreSQL 服务器配置:
更新 Node.js 和包:
如果尝试这些步骤后问题仍然存在,请考虑查阅 Digital Ocean 和 Strapi 文档或论坛,以获取与您的环境相关的具体指南。此外,查看 PostgreSQL 日志中是否有任何与 SSL 相关的错误可能会更深入地了解问题。