Сбой соединения Talend с базой данных PostgreSQL

#postgresql #ssl #ssl-certificate #etl #talend

#postgresql #ssl #ssl-сертификат #etl #talend

Вопрос:

Я пытаюсь установить соединение с базой данных PostgreSQL, которая находится на удаленном сервере, используя Talend Open Studio для больших данных версии 7.3.1 проблема в том, что серверу требуются SSL-сертификаты. Я перепробовал много способов, но он по-прежнему терпит неудачу. Вот строки подключения, которые я пробовал, и ошибки журнала в TOS BD

1) С отключением режима ssl jdbc:postgresql://xx.xx.xx.xx:5432/dbName?ssl=trueamp;sslfactory=org.postgresql.ssl.NonValidatingFactoryamp;sslmode=disable

 Exception in component tDBConnection_1 (DB_Connection)
org.postgresql.util.PSQLException: FATAL: pg_hba.conf rejects connection for host "my.ip.address.here", user "user", database "databasename", SSL off
 

2) Без указания режима ssl (это означает, что он принимает режим по умолчанию) jdbc:postgresql://xx.xx.xx.xx:5432/dbName?ssl=trueamp;sslfactory=org.postgresql.ssl.NonValidatingFactory

 org.postgresql.ssl.PGjdbcHostnameVerifier verify
GRAVE: Server name validation failed: hostname xx.xx.xx.xx does not match common name xxxxx
Exception in component tDBConnection_1 (DB_Connection)
org.postgresql.util.PSQLException: The hostname xx.xx.xx.xx could not be verified by 
hostnameverifier PgjdbcHostnameVerifier
 

3) Если я опущу часть параметров SSL в соединении, подобную этому jdbc: postgresql: //xx.xx.xx.xx:5432/dbName?запрашивается действительный сертификат клиента.

ПРИМЕЧАНИЕ: я могу подключиться к базе данных с помощью pgadmin проблема связана с Talend open Studio

Ответ №1:

Решение состоит в том, чтобы поместить местоположения сертификатов в строку подключения с указанием режима ssl :

ssl=trueamp;sslmode=preferamp;sslcert=DirectoryToSslCertificates/client.crtamp;sslkey=DirectoryToSslCertificates/clientkey.pk8amp;sslrootcert=DirectoryToSslCertificates/root.crt

(не забудьте изменить форматы сертификатов с помощью команд openssl, у меня были файлы .pem)