能否用Supabase搭配部署Strapi?SSL自签名证书错误求助
Strapi+Supabase+Netlify部署方案可行性及SSL问题解决
方案可行性确认
完全可行。Supabase基于PostgreSQL,Strapi原生支持PostgreSQL数据库;Netlify支持部署Node.js应用(包括Strapi),两者的免费额度足以覆盖个人项目需求。
具体配置步骤及SSL错误修复
1. Supabase数据库准备
在Supabase控制台创建项目后,进入「Settings」→「Database」,复制完整的数据库连接URL,Supabase默认强制要求SSL连接,这是触发错误的核心原因。
2. Strapi数据库连接配置
修改Strapi项目中config/env/production/database.js(生产环境专属配置)或根目录下的config/database.js,重点配置SSL参数以信任Supabase的证书:
module.exports = ({ env }) => ({ connection: { client: 'postgres', connection: { connectionString: env('DATABASE_URL'), ssl: { // 快速解决:临时禁用证书验证(适合测试环境) rejectUnauthorized: false // 生产环境安全配置:使用Supabase官方CA证书验证 // ssl: { // ca: env('PGSSLROOTCERT') // } }, }, pool: { min: 2, max: 10 }, acquireConnectionTimeout: 60000, }, });
3. Netlify部署配置
- 关联你的Strapi代码仓库到Netlify站点
- 在「Site settings」→「Environment variables」中添加:
DATABASE_URL: 填入Supabase复制的数据库连接URL- (生产环境可选)
PGSSLROOTCERT: 填入Supabase提供的CA证书内容(可在Supabase数据库设置页下载)
- 设置构建参数:
- 构建命令:
npm run build - 发布目录:
build
- 构建命令:
4. SSL错误说明
你碰到的self signed certificate in certificate chain错误,是因为Node.js默认不信任Supabase的自签名SSL证书。上述配置中的rejectUnauthorized: false可快速解决,但生产环境建议使用官方CA证书进行验证,避免安全风险。
错误日志
Sep 14 10:41:05 PM $ strapi start Sep 14 10:41:36 PM [2023-09-14 17:11:36.869] debug: ⛔️ Server wasn't able to start properly. Sep 14 10:41:36 PM [2023-09-14 17:11:36.872] error: self signed certificate in certificate chain Sep 14 10:41:36 PM Error: self signed certificate in certificate chain Sep 14 10:41:36 PM at TLSSocket.onConnectSecure (node:_tls_wrap:1539:34) Sep 14 10:41:36 PM at TLSSocket.emit (node:events:513:28) Sep 14 10:41:36 PM at TLSSocket.emit (node:domain:489:12) Sep 14 10:41:36 PM at TLSSocket._finishInit (node:_tls_wrap:953:8) Sep 14 10:41:36 PM at TLSWrap.ssl.onhandshakedone (node:_tls_wrap:734:12) Sep 14 10:41:37 PM error Command failed with exit code 1.
内容的提问来源于stack exchange,提问作者Vivekraj K R
相关产品推荐
相关产品推荐

