我们遇到了从GCP数据流(基于Apache Beam/Java SDK(到GCP内部服务的REST调用问题,该服务具有自定义自签名证书。
我们试图将运行时中的证书放入/java//cacerts文件,它运行良好,但Java读取/cacert在启动期间,我们被迫覆盖SSlContext和X509TrustManager,将其放入HttpClient并在http调用之前和加载自定义证书之后在运行时中重新加载cacert文件(遵循此示例(。
从我的角度来看,它看起来相当难实现。
那么问题来了:这个问题有什么简单的解决方法吗?比如在GCP Dataflow Worker运行之前运行.sh脚本,并在JVM启动之前通过cli更新cacert文件。
我们还通过gcloudcli启动了Dataflow,因此我们不能只将自定义cacert放到项目中,并通过Java选项将JVM指向它。
谢谢你的建议!
我们对使用自签名证书的服务进行了类似的身份验证。
你总是可以为你的工人使用自定义容器,并将证书复制到dockerfile中的cacerts?通过这种方式,工人将始终拥有证书。(只有使用Dataflow Runner v2的管道才支持自定义容器(