Closed3

Cloud RunからPrismaを使ってPlanetScaleに接続しようしたときに発生したTLSエラーについて

catnosecatnose

Cloud RunにデプロイしたNext.jsのAPI RoutesでPlanetScaleへ接続しようとしたところ以下のようなエラーが発生した。

PrismaClientInitializationError:
Invalid `prisma.user.findUnique()` invocation:
Error querying the database: Server error: `ERROR HY000 (1105): unknown error: Code: UNAVAILABLE
server does not allow insecure connections, client must use SSL/TLS

解決策

Dockerイメージでca-certificatesをインストールし、実行環境で/etc/ssl/certs/ca-certificates.crtを参照できるようにしたところ解決した。

   FROM node:18.12 AS builder

+  RUN apt-get update && apt-get install -y ca-certificates

   WORKDIR /app
   COPY package.json ./
   COPY yarn.lock ./
   RUN yarn install --frozen-lockfile
   COPY . .
   RUN npx prisma generate
   RUN yarn build

   FROM node:18.12-slim AS runner
   WORKDIR /app

   COPY --from=builder /app/public ./public
   COPY --from=builder /app/.next/static ./.next/static
   COPY --from=builder /app/.next/standalone ./
+  COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/

   CMD ["node", "server.js"]
薄田達哉 / tatsuyasusukida薄田達哉 / tatsuyasusukida

いつも勉強になる情報をありがとうございます!DATABASE_URL の末尾に ?sslaccept=strict を付ければ解決できるかもしれないと思いましたがそれとは原因が異なるようですね。同じような状況で困った時に参考にさせてもらいます。

catnosecatnose

コメントありがとうございます!
?sslaccept=strictをつけたDATABASE_URLでエラーが発生したので今回の原因は異なるみたいですね。

このスクラップは2023/01/06にクローズされました