GoLang HTTP クライアントの Docker コンテナでの「不明な権限によって署名された証明書」エラーの解決
Google API にアクセスするための Docker コンテナの実行時GoLang の http.Client を使用すると、「不明な権限によって署名された証明書」というエラーが発生する場合があります。この問題は、API サーバーの証明書を検証するために必要な信頼できる証明書がコンテナにない場合に発生します。
スクラッチ コンテナ
SCRATCH コンテナでは、信頼できる証明書を含めることが重要ですアプリケーションの横のコンテナ内にあります。これを実現するには、ca-certificates.crt ファイルをコンテナに直接追加します。
FROM scratch ADD ca-certificates.crt /etc/ssl/certs/ ADD main / CMD ["/main"]
Multi-Stage Build
マルチステージ ビルドを使用する場合は、 Dockerfile を変更することで、ディストリビューション ベンダーによってパッケージ化された証明書を利用できます。
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"]
これらの変更を行うと、安全な接続を確立するために必要な証明書をコンテナに提供し、「不明な認証局によって署名された証明書」エラーが解消され、GoLang HTTP クライアントと Google API の正常なやり取りが可能になります。
以上がGoLang Docker コンテナの「不明な機関によって署名された証明書」エラーを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。