【问题标题】:Google cloud datafusion how to accept self-signed certificates谷歌云数据融合如何接受自签名证书
【发布时间】:2020-04-01 00:59:41
【问题描述】:

我们刚刚开始将谷歌云数据融合用于我们的 ETL。

我们有一个用例来访问服务器(自签名)并使用数据融合产品中的 http 插件获取一些信息。

在我的管道中,我正在关闭 SSL 验证以接受任何证书但收到错误

javax.net.ssl.SSLPeerUnverifiedException: Certificate for <on000120.aeo.ae.com> doesn't match any of the subject alternative names: []

该字段的帮助文本也建议将其关闭。见图片。

有人可以帮忙吗?

【问题讨论】:

  • 你用的是什么版本的http插件?
  • v1.2.0.我们有企业版,这是 Hub 中唯一可用的版本。有没有更高版本,我怎样才能把它拉进来?
  • 可以找到here http-plugin v1.3.0,可以上传到DF实例。
  • 只有这个基于 Java 的 http 客户端有问题吗?您是否尝试过从其他 http 命令发送方中建立不安全的连接?

标签: ssl google-cloud-platform ssl-certificate google-cloud-data-fusion


【解决方案1】:

我按照https://www.freecodecamp.org/news/how-to-get-https-working-on-your-local-development-environment-in-5-minutes-7af615770eec/ 的说明生成密钥和crt 文件,所以我有一个名为v3.ext 的文件(其中包括subjectAltName)并用它来生成server.crt 文件。当我使用这些文件启动服务器时,我能够使用来自该本地 HTTPS 服务器的 HTTP 源部署和运行管道。您是如何生成 crt 和密钥的?请描述一下您正在使用的插件吗?

【讨论】:

  • 这似乎更适合用于澄清问题的评论。您采取的所有操作的屏幕截图肯定会对这样的问题有所帮助。欢迎来到 SO! :)
【解决方案2】:

我假设您报告的问题与 Data Fusion 运行时环境无关,但可能与目标 HTTPS Web 服务器 SSL/TLS 配置有关。大多数情况下,当您的 SSL/TLS 证书的公用名或 SAN(Subject Alternative Name) 与您在 HTTP 调用中点击的域或地址不匹配时,就会出现此问题,因此此页面没有在 SAN 的列表中列出,我可以假设您没有在其中添加任何域名。

据我所知Data Fusion http-plugin,它是基于Java HTTP Client实现的,推广HostnameVerifier class,用于URL的主机名和服务器在建立过程中识别主机名各方之间的握手,您可以查看源代码code 并找到继承方法getDefaultHostnameVerifier()。因此,在 http 客户端意图启动 SSL/TLS 连接通道期间,这可能会导致错误。

即使您在插件设置中关闭了信任密钥库证书检查,问题仍然存在,因为主机名验证仍然失败。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-14
    • 2015-12-25
    • 1970-01-01
    • 2022-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多