You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过Dart调用带Firebase认证的Cloud Run gRPC服务遇证书未知颁发机构错误

错误原因

你遇到的报错和客户端ChannelCredentials配置无关,错误发生在服务端内部逻辑:
Firebase Admin SDK 验证ID令牌时需要从Google官方接口拉取签名公钥,但你的服务端容器镜像没有预装CA根证书,无法校验Google API的SSL证书,才抛出了x509: certificate signed by unknown authority错误。本地运行正常是因为你的开发环境自带了通用CA根证书。

解决方案

你只需要修改服务端的Dockerfile,在镜像中添加CA根证书即可,针对Go服务的常见构建场景参考以下配置:

  1. 基于Alpine基础镜像构建:
# 在原有Dockerfile中添加安装CA证书的命令
RUN apk add --no-cache ca-certificates
  1. 基于Scratch空镜像构建:
# 构建阶段
FROM golang:1.21-alpine AS builder
RUN apk add --no-cache ca-certificates
WORKDIR /app
COPY . .
RUN go build -o server .

# 运行阶段
FROM scratch
# 复制构建阶段的CA证书到运行镜像
COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
COPY --from=builder /app/server /server
ENTRYPOINT ["/server"]

额外说明

  • 你的客户端ChannelCredentials.secure()配置完全正确,Cloud Run默认提供受公共信任的SSL证书,不需要额外传参。
  • 你已经开启的Cloud Run HTTP2支持、允许未认证调用配置均不影响该问题,不需要修改。

内容的提问来源于stack exchange,提问作者Louis Beaumont

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 05:24:07