GoLang HTTP.Client を使用した Docker コンテナで認証局エラーが発生しました
Google API と通信しようとして、個人が Docker を構築しましたGoLangを利用したコンテナ。当初、SCRATCH コンテナが使用されていたため、「証明書が不明な権限によって署名されました」というエラーが発生しました。 ubuntu/alpine に切り替えると、エラーが継続します。
この問題は、コンテナー内に信頼できる証明書が存在しないために発生します。これを修正するには、次の 2 つのアプローチを採用できます。
スクラッチ イメージ
アプリケーションとともに信頼できる証明書を組み込む:
FROM scratch ADD ca-certificates.crt /etc/ssl/certs/ ADD main / CMD ["/main"]
マルチステージビルド
によって提供される証明書を利用しますディストリビューション ベンダー:
FROM golang:alpine as build RUN apk --no-cache add ca-certificates WORKDIR /go/src/app COPY . . RUN CGO_ENABLED=0 go-wrapper install -ldflags '-extldflags "-static"' FROM scratch COPY --from=build /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ COPY --from=build /go/bin/app /app ENTRYPOINT ["/app"]
これらのメソッドを採用することで、コンテナは必要な証明書を所有し、Google API とのシームレスな通信が可能になります。
以上がDocker コンテナで GoLang の HTTP.Client を使用するときに発生する「不明な認証局によって署名された証明書」エラーを解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。