【问题标题】:JDBC Connection Pool SSL Error PKIX building failedJDBC 连接池 SSL 错误 PKIX 构建失败
【发布时间】:2015-03-31 03:20:53
【问题描述】:

这是使用最新的 Glassfish (4.1)、针对 Postgres 9.4 的最新 Postgres 驱动程序 (9.3-1102 JDBC 41) 和最新的 Java (1.8.0_31-b13)。

这也是使用商业 CA 证书,我检查了 CA 根目录是否存在于 $JAVA_HOME/jre/lib/security/cacerts 中。为了更好地衡量,我还添加了中间证书。

我还验证了 Root 和中间版本在 glassfish 域/domain1/config/cacerts.jks 中

我收到的错误信息是:

发生错误。对 XXX 的 Ping 连接池失败。无法分配连接,因为:SSL 错误:sun.security.validator.ValidatorException:PKIX 路径构建失败 sun.security.provider.SunCertPathBuilderException:无法找到到所请求目标的有效证书路径。

Postgresql 日志显示如下:

LOG:  could not accept SSL connection: sslv3 alert certificate unknown

Glassfish server.log 仅显示上述错误。

如果我设置

sslfactory=org.postgresql.ssl.NonValidatingFactory

那么当然 ping 工作正常。但这对于生产目的来说显然是完全不可接受的,因为毫无疑问,必须强制防止 MITM 攻击!

【问题讨论】:

    标签: java postgresql jdbc glassfish glassfish-4


    【解决方案1】:

    只是为了回答我自己的问题,我做的一切都是正确的。我唯一错过的是检查 Postgres SSL 证书是否从正确的文件(/etc/postgresql/9.4/main/postgresql.conf)中读取。

    我现在可以 Ping 成功了

    【讨论】:

      猜你喜欢
      • 2011-01-18
      • 1970-01-01
      • 2018-06-22
      • 1970-01-01
      • 2017-01-11
      • 1970-01-01
      • 2017-04-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多