7

TLDR:スプリング ブートgradlebootBuildImageタスクが x509 証明書検証エラーで失敗する (zscaler が原因)。ルート証明書をどこに追加しますか?

情報

Spring Boot (2.3) の新しい「bootBuildImage」を使用して Docker イメージをビルドしています。

最近、私たちの IT グループは、すべての http および https トラフィックを会社が祝福した「man in the middle」、つまり DNS を使用して「ゲートウェイ/チェックポイント」ネットワーク トラフィックに効果的にルーティングする「zscaler Everywhere」を有効にしました。

エラー

この変更の後、gradle は X509 証明書の検証エラーで失敗します。

2021-03-01T08:40:42.120-0600 [QUIET] [system.out]     [creator]     unable to request https://repo.
spring.io/release/org/springframework/cloud/spring-cloud-bindings/1.7.0/spring-cloud-bindings-1.7.0
.jar
2021-03-01T08:40:42.120-0600 [QUIET] [system.out]     [creator]     Get "https://repo.spring.io/release/org/springframework/cloud/spring-cloud-bindings/1.7.0/spring-cloud-bindings-1.7.0.jar": x509: certificate signed by unknown authority
202

より多くのコンテキスト

  • スプリングブーツ 3.7
  • グラドル
  • マック
  • Docker デスクトップ
  • 特に spring-cloud-bindings で失敗する

質問

  • x509 ssl 証明書の検証エラーを回避するにはどうすればよいですか?

zscaler ルート証明書をトラスト ストアにインストールできる必要があることは理解していますが、どのトラスト ストアが不明ですか?? (そしてファイルシステムのどこ?)

  • ドッカー
  • パケト

「Spring Cloud Download」が失敗する理由は不明ですが、他のダウンロードは成功します。つまり、このダウンロードは成功します。

2021-03-01T08:40:34.790-0600 [QUIET] [system.out]     [creator]       BellSoft Liberica JRE 8.0.282
: Contributing to layer
2021-03-01T08:40:34.790-0600 [QUIET] [system.out]     [creator]         Downloading from https://github.com/bell-sw/Liberica/releases/download/8u282+8/bellsoft-jre8u282+8-linux-amd64.tar.gz
2021-03-01T08:40:38.913-0600 [QUIET] [system.out]     [creator]         Verifying checksum

前もって感謝します!

4

1 に答える 1

2

同様の問題が Github で報告されています。たとえば、Spring Cloud に関連するこの問題、特にSpring Boot プロジェクトの他の問題です。

前回の問題で説明したように、現時点では、関連する Github の問題のこのコメントで説明されているように、ビルド プロセスで使用する必要があるイメージをカスタマイズするのがおそらく最善の解決策です。

アイデアは、必要な証明書が構成された新しいイメージを生成し、それをbuilderベースとして使用することです (例として示されたコメントからコピー):

FROM gcr.io/paketo-buildpacks/builder:base

USER root

ADD server.crt /usr/local/share/ca-certificates/server.crt
RUN chmod 644 /usr/local/share/ca-certificates/server.crt \
 && update-ca-certificates

USER cnb

このカスタマイズされたイメージは、ビルド タスクで Spring Boot によって使用されるイメージになります。関連ドキュメントを参照してください。

上記の問題、ほんの数日前に、最新の Spring Boot スナップショット バージョンに、Maven および Gradle プラグインを使用してビルダー コンテナーにカスタム証明書を追加できるバインディング機能が含まれていることも示しています。この機能は、3 月 18 日の2.5.0-M3Spring Boot マイルストーンで利用可能になります。

于 2021-03-09T11:43:41.630 に答える