微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

spring boot bootBuildImage paketo ssl 证书位置?

如何解决spring boot bootBuildImage paketo ssl 证书位置?

TLDR: spring boot gradle bootBuildImage 任务因 x509 证书验证错误而失败(由于 zscaler)。在哪里添加根证书?

信息

我们使用 spring boot (2.3) 的新“bootBuildImage”来构建 docker 镜像。

最近我们的 IT 团队启用了“zscaler 无处不在”,它通过公司支持的“中间人”有效地路由所有 http 和 https 流量,即使用 DNS 来“网关/检查点”网络流量

错误

此更改后,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

更多背景

  • Spring Boot 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

提前致谢!

解决方法

类似的问题已在 Github 上报告,例如与 Spring Cloud 相关的 this one,尤其是 Spring Boot 项目中的 this other

如上一个提到的问题中所述,目前最好的解决方案可能是自定义构建过程中应使用的图像,如相关 Github 问题中的 this comment 所述。

这个想法是生成一个配置了必要证书的新图像,并将其用作您的 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 在您的构建任务中使用的镜像。请参阅relevant documentation

上述问题 indicates as well,就在几天前,最新的 Spring Boot 快照版本包括绑定功能,该功能将允许您使用 Maven 和 Gradle 向构建器容器添加自定义证书插件。此功能将于 3 月 18 日在 2.5.0-M3 Spring Boot milestone 推出。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。