Вопрос или проблема
Я пытаюсь настроить dbeaver с драйвером prestosql на MacOS, и он показывает мне следующую ошибку
невозможно найти валидный путь сертификации к запрашиваемой цели
Я думаю, это связано с тем, что dbeaver использует JRE по умолчанию без правильной настройки учетных данных, так как я могу указать его на другой путь JRE?
моя версия dbeaver: Version 6.3.0.201912011827
Я думаю, он пытается сказать: “Я пытаюсь использовать SSL/TLS, но база данных, к которой я обращаюсь, предоставляет сертификат, который не подписан ни одним ЦС, известным JRE, и поэтому не может быть подтвержден.” Другими словами, ему нужен сертификат ЦС, который подписал сертификат вашей базы данных.
Вы проверяли настройки в настройках подключения к базе данных -> Общие -> Сетевые настройки -> SSL? Это, похоже, позволяет вам указать сертификат ЦС, используемый для проверки сертификата базы данных. Смотрите также этот вопрос на StackOverflow.
Или, если вы используете более старую версию dbeaver, посмотрите это обсуждение проблемы на GitHub.
Вот список параметров, поддерживаемых JDBC-драйвером PrestoSQL. Обратите внимание, что вы можете добавлять параметры к URL базы данных, если нет другого способа их указать. В этом случае вам нужно указать SSLTrustStorePath
, чтобы указать на хранилище ключей Java, содержащее необходимые сертификаты ЦС, а возможно, также SSLTrustStorePassword
.
Ответ или решение
Чтобы задать путь к JRE для DBeaver на MacOS, выполните следующие шаги:
Шаг 1: Установите необходимую версию JRE
Прежде всего, убедитесь, что необходимая версия JRE установлена на вашем Mac. Например, вы можете установить OpenJDK с помощью Homebrew. Откройте терминал и выполните команду:
brew install openjdk
Шаг 2: Найдите путь к установленной JRE
После установки вам нужно найти путь к вашей JRE. Обычно он находится по следующему пути:
/usr/local/opt/openjdk/bin/java
Вы можете проверить, где находится Java, выполнив команду:
/usr/libexec/java_home -V
Эта команда отобразит установленные версии Java и их пути.
Шаг 3: Укажите путь к JRE в DBeaver
Теперь вам нужно указать DBeaver использовать ваш JRE. Для этого выполните следующие шаги:
- Закройте DBeaver, если он открыт.
- Перейдите в папку, где установлен DBeaver. Обычно это:
/Applications/DBeaver.app
- Щелкните правой кнопкой мыши на DBeaver.app и выберите "Показать содержимое пакета".
- Перейдите по пути:
Contents/MacOS/
- Найдите файл
dbeaver.ini
и откройте его для редактирования. - Добавьте следующую строку в верхнюю часть файла:
-vm /usr/local/opt/openjdk/bin/java
Обязательно укажите путь к JRE, который вы нашли на шаге 2.
Шаг 4: Настройка подключения к базе данных
С учетом той проблемы, с которой вы столкнулись ("unable to find valid certification path to requested target"), вам также следует:
- Перейти в настройки подключения к базе данных в DBeaver.
- В разделе "Общие" -> "Сетевые настройки" -> "SSL" укажите путь к вашему файлу сертификата CA, если требуется.
- Убедитесь, что вы добавили
SSLTrustStorePath
и, при необходимости,SSLTrustStorePassword
в параметры подключения.
Шаг 5: Запустите DBeaver
После внесения изменений, сохраните файл dbeaver.ini
и запустите DBeaver снова. Проверяйте, отображается ли ошибка, и если требуется, проверьте ваши SSL настройки в подключении.
Заключение
Следуя вышеизложенным шагам, вы сможете указать DBeaver использовать нужный вам JRE и настроить соединение с базой данных так, чтобы избежать ошибок верификации сертификата. Будьте внимательны к настройкам SSL и удостоверитесь, что все сертификаты правильно загружены в Java Keystore.