😊
CloudRun上でGoのDocker Imageがcertificate signed by unknown authority
記事の内容
CloudRun上で、Goで動作するAPIを構築中、Firebase Authとの連携処理が401エラーを出して正常にできなかった。
そのため、エラーログを確認すると、以下のログを発見
tls: failed to verify certificate: x509: certificate signed by unknown authority
この記事では、このエラーの解消法を紹介します。
記事の長さ
1分で読めます
原因
Dockerfileに原因がありました。
Dockerfile
FROM golang:1.21.3-bullseye as builder
...
# ---------------------------------------------------
FROM debian:bullseye-slim as deploy
...
# ---------------------------------------------------
FROM golang:1.21.3 as dev
このようなDockerfileを利用しているのですが、deploy環境で利用している軽量Docker Imageでtls通信をするために必要なパッケージが含まれておらず、ローカル環境からFirebase Authには接続できるが、deployステージのDocker ContainerからはFirebase Authと正常にやり取りができなくなりました。
対応
RUN apt-get install -y ca-certificates openssl
この行をdeployステージに追加して、ca-certificates
を本番Docker Imageでも使用できるようにしました。
その結果、正常にFirebase Authが動作するようになりました。
note
勉強法やキャリア構築法など、エンジニアに役立つ記事をnoteで配信しています。
Discussion