ホームページ >バックエンド開発 >Golang >GoLang Docker コンテナで「不明な機関によって署名された証明書」エラーが発生するのはなぜですか?

GoLang Docker コンテナで「不明な機関によって署名された証明書」エラーが発生するのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-01 02:43:10810ブラウズ

Why Does My GoLang Docker Container Get a

Docker コンテナの問題: 不明な権限によって署名された証明書エラー

GoLang の http.Client を使用して Docker コンテナを実行すると、エラー メッセージ「不明な機関によって署名された証明書です。」この問題は、コンテナを最初から作成する場合、または Ubuntu/Alpine イメージを使用する場合に発生します。

問題を理解するには、http.Client がシステムの証明書ストアで TLS 構成を使用することに注意することが重要です。コンテナが最初から作成される場合、デフォルトでは信頼できる証明書がありません。

解決策:

この問題の解決策は、Docker の種類によって異なります。使用している画像:

スクラッチ画像:

  1. 信頼できる証明書をイメージに含めます。たとえば、ca-certificates.crt ファイルを /etc/ssl/certs ディレクトリに追加できます:
FROM scratch
ADD ca-certificates.crt /etc/ssl/certs/
ADD main /
CMD ["/main"]

Multi-Stage Image:

  1. ビルド中に ca-certificates パッケージを追加しますstage:
FROM golang:alpine as build
RUN apk --no-cache add ca-certificates
  1. ビルドステージから最終イメージに証明書をコピーします:
FROM scratch
COPY --from=build /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
COPY --from=build /go/bin/app /app
ENTRYPOINT ["/app"]

Docker イメージに信頼できる証明書を含めることにより、を実行すると、http.Client はサーバー証明書を確認し、Google の API への HTTPS リクエストを正常に実行できるようになります。

以上がGoLang Docker コンテナで「不明な機関によって署名された証明書」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。