CertPathValidatorException连接到POSTGRES RDS失败:算法约束检查在密钥大小限制上失败

时间:2019-01-22 18:43:58

标签: java postgresql amazon-web-services amazon-ec2 amazon-rds

我有一个简单的springboot jar应用程序,它正在尝试从EC2实例连接到RDS数据库。尝试通过

启动jar时

SPRING_DATASOURCE_URL=jdbc:postgresql://name-of-rds-server.us-west-2.rds.amazonaws.com:5432/tms java -jar jarname.jar

在EC2实例上,失败并显示

Caused by: java.security.cert.CertPathValidatorException: Algorithm constraints check failed on keysize limits. RSA 1024bit key used with certificate: C=US, ST=Washington, L=Seattle, O=Amazon.com, OU=RDS, CN=name-of-rds-server.us-west-2.rds.amazonaws.com.  Usage was tls server
    at java.base/sun.security.util.DisabledAlgorithmConstraints$KeySizeConstraint.permits(DisabledAlgorithmConstraints.java:815)
    at java.base/sun.security.util.DisabledAlgorithmConstraints$Constraints.permits(DisabledAlgorithmConstraints.java:419)
    at java.base/sun.security.util.DisabledAlgorithmConstraints.permits(DisabledAlgorithmConstraints.java:167)
    at java.base/sun.security.provider.certpath.AlgorithmChecker.check(AlgorithmChecker.java:332)
    at java.base/sun.security.ssl.AbstractTrustManagerWrapper.checkAlgorithmConstraints(SSLContextImpl.java:1637)

因此,这使我无法修改java.security。我尝试使用伪指令jdk.certpath.disabledAlgorithmsjdk.tls.disabledAlgorithms修改该文件,以减少对密钥大小的限制,但是当我使它们生效时,这些更改似乎正在生效。我也尝试过将指令完全注释掉。我已经确认java.security在正在执行的Java命令的conf目录中。如果我从conf目录中删除/ mv java.security,应用程序将正常启动。

此外,我还可以通过intellij在本地使用相同的JBDC url连接到rds数据库,这似乎与EC2上的java配置有关。我已经尝试过openJDK vs oracle以及版本8和11。我也曾尝试在RDS实例上禁用ssl,但是此验证异常仍然发生。

CertPathValidatorException进行了很多搜索,都遇到了类似的问题,但是却没有类似的问题。也许这很简单,但我无法弄清楚。

最终,我想在连接到postgres rds实例的EC2实例上运行这个简单的jar。

非常感谢您!

0 个答案:

没有答案