Сбой соединения с POSTGRES RDS с CertPathValidatorException: проверка ограничений алгоритма не удалась для ограничений размера ключа - PullRequest
0 голосов
/ 22 января 2019

У меня есть простое приложение JAR для Springboot, которое пытается подключиться к базе данных RDS из экземпляра EC2. При попытке запустить банку через

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.disabledAlgorithms и jdk.tls.disabledAlgorithms, но эти изменения, похоже, вступают в силу, когда я их делаю. Я попытался просто закомментировать директиву полностью. Я подтвердил, что java.security находится в conf dir выполняемой команды java. Если я удалю / mv java.security из каталога, приложение запустится нормально.

Кроме того, локально через intellij я могу подключиться к базе данных rds с тем же URL-адресом JBDC, что отлично, похоже, это связано с конфигурацией java на EC2. Я пробовал openJDK vs oracle и версии 8 и 11. Я также пытался отключить ssl на экземпляре RDS, но это исключение проверки все еще происходит.

Многие поиски столкнулись с похожими проблемами с CertPathValidatorException, но ничего подобного. Возможно, это что-то простое, но я не могу понять это.

В конце дня я хочу запустить этот простой jar на экземпляре EC2, который подключается к экземпляру postgres rds.

Большое вам спасибо!

...