TLDR:弹簧引导gradle bootBuildImage任务失败,x509证书验证错误(由于x509)。在哪里添加根证书?
信息
我们使用spring的(2.3)新的"bootBuildImage“来构建码头映像。
最近,我们的IT组打开了"zscaler“,它有效地通过一家公司路由所有http和https流量,即使用DNS到‘网关/检查点’网络流量。
误差
在进行此更改后,X509证书验证错误导致gradle失败:
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更多上下文
问题
我知道应该能够在信任存储中安装zscaler证书,但不清楚哪个信任存储??(文件系统上的位置呢?)
我不清楚'spring下载‘失败的原因,但是其他下载成功了,也就是这个下载成功了:
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提前谢谢!
发布于 2021-03-09 11:43:41
类似的问题也有报道,比如Spring相关的这一个,尤其是Spring项目中的另一个。
正如前面提到的问题中所解释的,目前最好的解决方案可能是自定义在构建过程中应该使用的映像,就像这句话在一个相关的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在构建任务中使用的映像。请看相关文件。
就在几天前,上面提到的也表示问题是,最新的Spring快照版本包含绑定功能,它允许您使用Maven和Gradle插件向构建器容器添加自定义证书。这个特性将于3月18日在弹簧启动里程碑上发布。
https://stackoverflow.com/questions/66425605
复制相似问题