【问题标题】:SSL Handshake Exception in Google Dataflow Beam JobGoogle Dataflow Beam 作业中的 SSL 握手异常
【发布时间】:2023-03-25 07:53:01
【问题描述】:

在使用 Okhttp3 从 Dataflow 作业请求(获取和发布)HTTPS url 时,程序抛出 SSL 握手异常并失败。确切的消息是 "javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure"

在 Dataflow 中,相同的代码早在 3-4 周(11 月 23 日之前)就可以运行。现在它因上述异常而失败。由于服务器(HTTPS URL 提供程序)的一些变化,这是否会成为一个问题?还是与我的数据流/光束设置有关。

SDK 和 lib 版本 -

Apache Beam SDK for Java 2.16.0
com.squareup.okhttp3:okhttp:4.2.2

【问题讨论】:

  • 您是否尝试过更改库的版本?例如 Beam SDK for Java 2.15,您还可以探索更改库 google-http-java-client 的解决方法,如this post中的 cmets 中所述
  • 是的,从昨天下半年开始,我们的数据流流作业也开始出现同样的错误。我们使用 1. Apache Beam SDK for Java 2.12.0 和 2.com.google.api.client.http (1.29.1)
  • 我尝试过使用 Beam SDK 2.13,但结果没有区别。我还没有尝试更改 http java 客户端库。
  • 如果 google-http-java-client 有所作为,如果您与我们分享,这将非常有价值。
  • 嗨@rsantiago,我还没有尝试使用新的java客户端。相反,我现在寻求快速修复。找到 API 提供者和我们的 Dataflow 运行者之间的通用密码。幸运的是,API 提供者和 Runners 有共同的 SSL 版本。并且有共同的密码。所以我收集了 cipers 并将其添加到 Okhttp3 的连接规范中。 (并提出一个漂亮的警告评论:P)。我只有 2 个 API 提供者,所以对我来说没问题,我希望跑步者将来会得到修复。

标签: java google-cloud-platform google-cloud-dataflow apache-beam okhttp


【解决方案1】:

看起来您的服务器的 SSL 配置发生了变化。试试这个网站以确认您的服务器和设备是否兼容。

https://www.ssllabs.com/ssltest/

【讨论】:

    【解决方案2】:

    就像我在my answer here 中解释的那样,GCP 默认禁用GCM 算法,并且很可能您的服务器仅支持GCMPOLY。 要在管道中重新启用 GCM,您需要注册 JvmInitializer 并更改安全设置。

    请查看my other answer 了解如何执行此操作。

    【讨论】:

      猜你喜欢
      • 2011-04-16
      • 1970-01-01
      • 1970-01-01
      • 2015-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-24
      • 1970-01-01
      相关资源
      最近更新 更多