Next.js13.2.4+Prisma5.0.0连接AWS RDS PostgreSQL SSL失败求助
解决AWS RDS更新SSL证书后Prisma连接失败问题
针对你使用Next.js 13.2.4 + Prisma 5.0.0遇到的P1011 TLS连接错误,以下是可行的解决步骤:
确保使用最新的AWS RDS根证书
下载AWS最新的全局根证书(如rds-ca-2020),将其保存为cert.pem放在项目的prisma目录下。修正DATABASE_URL的SSL参数
PostgreSQL的SSL连接需要完整的参数配置,仅指定sslcert不足以完成证书验证。修改.env中的DATABASE_URL为:postgresql://myuser:mypass@myurl:5432/mydb?charset=utf8&sslmode=verify-full&sslrootcert=./prisma/cert.pem关键参数说明:
sslmode=verify-full:强制验证服务器证书的有效性,确保连接安全sslrootcert:指定根证书的路径,Prisma会用它来验证RDS服务器的证书
检查证书路径正确性
如果使用相对路径,确保路径是相对于项目根目录(Prisma命令执行的目录)。本地开发时可以先尝试绝对路径排查是否是路径问题,比如:postgresql://myuser:mypass@myurl:5432/mydb?charset=utf8&sslmode=verify-full&sslrootcert=/Users/xxx/project/prisma/cert.pem验证证书有效性
用OpenSSL命令测试证书是否能正常连接RDS,排除证书本身的问题:openssl s_client -host myurl -port 5432 -CAfile ./prisma/cert.pem如果命令返回正常的SSL握手信息,说明证书没问题,问题出在Prisma配置。
清除Prisma缓存
执行以下命令清除Prisma的缓存,确保新的配置生效:npx prisma generate npx prisma db push
内容的提问来源于stack exchange,提问作者lsj
相关产品推荐
相关产品推荐

