Ошибка сертификата SSL при подключении к базе данных PostgreSQL с помощью Oracle SQL Developer в Fedora 30

Ошибка сертификата SSL при подключении к базе данных PostgreSQL с помощью Oracle SQL Developer в Fedora 30

Ошибка, которую я получаюУ меня есть база данных postgresql 9.3, запущенная на виртуальной машине RHEL 6.2 kvm. Это часть приложения, которое я поддерживаю для работы, и я не могу вносить никаких изменений в конфигурацию содержимого самой виртуальной машины. В производстве она будет развернута на голом железе, эта виртуальная машина предназначена только для моих собственных нужд тестирования. На моем рабочем компьютере Windows я могу успешно подключиться к базе данных на аналогичной виртуальной машине с помощью SQL Developer.

Я подтвердил, что могу успешно подключиться к базе данных с хоста виртуальной машины через psql в командной строке. Selinux был временно отключен на виртуальной машине в целях тестирования.

После установки SQL Developer, openjdk, openjfx и передачи пути к моей установке openjdk, как того требует SQL Developer, загрузки драйвера JDBC postgresql и попытки подключения к базе данных я получаю следующую ошибку:

Status : Failure -SSL error: java.security.cert.CertificateException: Certificates do not conform to algorithm constraints

Я немного не понимаю, как это обойти. Я не разработчик Java и не знаю, как это исправить. После долгих поисков в Google похожих ошибок лучшим решением, которое я смог придумать, было добавить следующее в , /opt/sqldeveloper/sqldeveloper/bin/sqldeveloper.confчто не исправило проблему и не изменило ошибку:

AddVMOption -Djdk.certpath.disabledAlgorithms=MD2

яподозреватьэто по-прежнему правильное направление, но я не знаю, что должно быть вместо MD2, и является ли это вообще правильным решением.

Выполнение openssl s_client -connect 192.168.122.63:5432возвращает следующее:

    [user@hostname ~]$ openssl s_client -connect 192.168.122.63:5432
CONNECTED(00000003)
write:errno=0
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 0 bytes and written 303 bytes
Verification: OK
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
Verify return code: 0 (ok)
---

Как это обойти?

решение1

Строка, которую вы добавляете, обычно находится в файле java.security. Но вам нужно удалить эту строку из файла java.security. Или, если у вас есть дополнительные отключенные алгоритмы, удалите MD2 и сохраните остальное. Если у вас есть что-то вроде:

jdk.certpath.disabledAlgorithms=MD2, RSA keySize < 1024

сделай это

jdk.certpath.disabledAlgorithms=RSA keySize < 1024

Вы можете проверитьэтот ответБольше подробностей.

решение2

Похоже, ваш клиент думает, что соединение должно быть зашифровано, но ваш сервер этого не делает. Либо включите шифрование в том, что использует SSL для postgresql, либо отключите требование шифрования в вашей среде Java.

Связанный контент