Как настроить DataGrip для подключения Cloud SQL в режиме SSL через туннель с помощью DataGrip

Я новичок в Cloud SQL и Cloud Security. Итак, теперь я уже использую Cloud SQL и подключаюсь к базе данных с помощью Compute Engine. Я использую его как прокси-сервер и использую для удаленного подключения с моей локальной машины.

И затем мне нужно использовать SSL-соединение, попробуйте создать новые клиентские сертификаты, и все будет в порядке, если я подключусь с моего прокси-сервера.

Но не работает, когда я пытаюсь подключиться с локального компьютера с помощью DataGrip. Я получил сообщение об ошибке.

Не удалось подключиться к postgres @ database-server. [08006] Не удалось открыть файл корневого сертификата SSL /home/user/.postgresql/root.crt.


person ALTELMA    schedule 25.06.2019    source источник
comment
Какую версию DataGrip вы используете?   -  person moscas    schedule 25.06.2019
comment
Я использую версию 2019.1, и я использую все файлы закрытых ключей, которые генерируются из Google Cloud SQL и используются на вкладке SSL, и включаю конфигурацию ssh для подключения к прокси-серверу.   -  person ALTELMA    schedule 26.06.2019
comment
Попробуйте обновить DataGrip до последней версии. Мы существенно переработали подсистему SSL   -  person Vasilii Chernov    schedule 14.01.2021


Ответы (2)


Это вызвано изменением в драйвере Postgres JDBC после версии 42.2.2. Последующие версии обрабатывают ssl = true как sslmode = verify-ca, а также вносят изменение, из-за которого SSLFactory по умолчанию не распознает JRE cacerts .

Чтобы решить эту проблему, либо вернитесь к драйверу 42.2.2, либо установите sslfactory на org.postgresql.ssl.DefaultJavaSSLFactory

Также существует проблема с GitHub: https://github.com/pgjdbc/pgjdbc/issues/1307

person Matt T.    schedule 23.08.2019

На данный момент для корректной работы с SSL вам необходимо настроить DataGrip следующим образом.

  1. Перейдите на вкладку SSH / SSL
  2. Включите SSL и укажите пути к сертификату CA, сертификату клиента и закрытому ключу клиента
  3. Перейдите на вкладку Advanced
  4. Найдите свойство sslmode и установите желаемый уровень проверки, например verify-ca
  5. Найдите свойство sslrootcert и укажите путь к вашему ca.cert

Кроме того, вы переместили свой root.crt на /home/user/.postgresql/root.crt?

Также, если обратиться к https://cloud.google.com/sql/docs/postgres/connect-admin-ip#connect-ssl используйте следующие параметры:

sslmode=verify-ca

sslrootcert=/path/to/your/server-ca.pem

ca file=/path/to/your/server-ca.pem

client certificate file=/path/to/your/client-cert.pem

client key file=/path/to/your/client-key.pem

person moscas    schedule 26.06.2019
comment
К вашему сведению, я пытаюсь подключиться к Cloud SQL через туннель SSH и SSL. Теперь он все еще не работает. Я пытаюсь подключиться без SSH-туннеля, используя режим SSL, все еще получаю ту же ошибку. Итак, мне было интересно узнать о файлах сертификатов от Google. Можно использовать, ничего не делая? А что с root.crt? Собственно, это была работа до того, как я обновил версию DataGrip. Поэтому я пытаюсь использовать другое программное обеспечение, у меня тоже возникает та же ошибка. Что касается URL-адреса, который вы предпочитаете, я уже пробовал. Работает с прокси-сервера. - person ALTELMA; 26.06.2019
comment
После того, как я попытаюсь поступить так, как вы мне посоветуете. У меня новая ошибка. Ошибка подключения к postgres @ db-server. [08006] Ошибка SSL: получено критическое предупреждение: unknown_message. - person ALTELMA; 26.06.2019