開発者が次の場合にエラーに遭遇するGoLang の http.Client を使用して Docker コンテナを実行し、Google API と対話します。このエラーは、コンテナ環境内で証明書の信頼性が欠如している問題に起因します。
この問題は、スクラッチベースの Docker イメージに必要な信頼できる証明書が不足しているために発生します。スクラッチ イメージを使用する場合、開発者はこれらの証明書をイメージ内に手動で含める必要があります。
この問題を解決するには、次の手順に従います。
信頼できるものを注入する証明書:
スクラッチ イメージの場合、アプリケーション コードの横に ca-certificates.crt ファイルを含めます:
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 the ca-certificate.crt from the build stage COPY --from=build /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ COPY --from=build /go/bin/app /app ENTRYPOINT ["/app"]
コンテナを再起動します:
証明書が挿入されたら、Docker コンテナを再起動して、変更を適用します。
これらの手順に従うと、「不明な機関によって署名された証明書」エラーが発生することなく、Docker コンテナ内で GoLang の http.Client を正常に使用できるようになります。
以上がDockerコンテナ内のGoLangの`http.Client`の「不明な認証局によって署名された証明書」エラーを修正する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。