You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从AWS Glue连接Heroku Postgres数据库遇SSL问题

解决AWS Glue连接Heroku Postgres的SSL及超时问题

我之前在对接Heroku Postgres和AWS Glue的时候,也碰到过几乎一模一样的SSL报错和超时问题,折腾了好一阵才搞定,给你几个亲测有效的解决方向:

1. 修正JDBC URL的SSL参数,适配Heroku的强制SSL要求

Heroku Postgres默认强制SSL连接,这也是你碰到“主机匹配失败”“SSL连接失败”的核心原因。你可以调整JDBC URL的参数来解决:

  • 如果是因为主机证书验证不通过,尝试在URL末尾添加 &sslmode=require&sslfactory=org.postgresql.ssl.NonValidatingFactory,这个配置会跳过主机名的证书验证,直接建立SSL连接,能快速解决“主机匹配失败”的问题(注意:这会略降低安全性,但对于Heroku托管的合规数据库来说,风险可控)。
  • 确保你用的是Heroku官方提供的最新连接信息:可以通过Heroku CLI执行 heroku pg:credentials:url 命令获取完整的JDBC URL,避免手动输入时出错。

2. 排查网络超时问题

org.postgresql.util.PSQLException: Connection attempt timed out 基本都是网络不通导致的,你可以从这几个方面检查:

  • 如果你的Glue作业是在VPC内运行的,要确认VPC的安全组出站规则允许访问5432端口(Postgres默认端口),同时NACL也要放开对应的出站流量。
  • 如果Glue用的是公共端点,检查AWS账号是否有网络ACL或安全组限制了对公网5432端口的访问。

3. 复用DBeaver的SSL解决思路

你之前在DBeaver里碰到的SSL问题,本质和Glue是一样的,当时的解决方案可以复用:

  • 在DBeaver的连接设置里,把SSL模式改为「Require」或者「Verify CA」;如果还是报错,可以暂时切换到「Non Validating」模式跳过验证,先确认连接能通,再逐步调整到更安全的模式。

4. 优化AWS Glue的连接配置

  • 尽量不要手动拼接JDBC URL,用Glue控制台的连接向导填写主机、端口、数据库名等信息,然后在「额外JDBC参数」里添加键值对:
    • 键:sslmode,值:require
    • 键:sslfactory,值:org.postgresql.ssl.NonValidatingFactory
  • 检查Glue使用的PostgreSQL JDBC驱动版本,如果是默认的旧版本,建议上传最新的驱动包到S3,然后在Glue作业中指定使用这个自定义驱动,旧驱动可能对新的SSL协议支持不好。

内容的提问来源于stack exchange,提问作者CpILL

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:34:15