Я пытаюсь подключиться к базе данных MySQL с помощью SSL с помощью сертификата клиента. Я создал доверенные сертификаты с сертификатом CA:Kettle, JDBC, MySQL, SSL: не удалось подключиться к базе данных
keytool -import -alias mysqlServerCACert -file ca.crt -keystore truststore
Затем я создал хранилище ключей с моим секретным ключом и мой сертификатом клиента:
openssl pkcs12 -export -out bi.pfx -inkey bi.key -in bi.crt -certfile ca.crt
openssl x509 -outform DER -in bi.pem -out bi.der
keytool -importkeystore -file bi.der -keystore keystore -alias mysqlClientCertificate
Я добавил UseSSL = верно и RequireSSL = верно JDBC URL-адрес и пройден
-Djavax.net.ssl.keyStore=${db.keyStore}
-Djavax.net.ssl.keyStorePassword=${db.keyStore.pwd}
-Djavax.net.ssl.trustStore=${db.trustStore}
-Djavax.net.ssl.trustStorePassword=${db.keyStore.pwd}
трансформация котла из окружающей среды. Я все еще получаю сообщение «Не удалось создать соединение с сервером базы данных».
Я могу подключиться через SSL с помощью инструмента командной строки:
mysql --protocol=tcp -h myqlhost -P 3309 -u bi -p --ssl=on --ssl-ca=ca.crt --ssl-cert=bi.crt --ssl-key=bi.key db_name
Поэтому мой ток догадки, что это Ther проблемы с SSL-сертификатами.
Есть ли способ заставить MySQL JDBC Driver рассказать мне больше деталей, что пошло не так?
Является ли мое предположение неправильным, что параметры чайника могут использоваться для установки системных свойств? Как это сделать вместо этого?
Где ваш код JDBC? Я вижу $ {...}. На самом деле не строка подключения JDBC. –
@Norbert van Nobelin: Это переменные чайника, которые существуют в задании, задание передает их преобразованию в качестве параметров, как описано в моем вопросе. – cdonat
Это строка подключения JDBC: jdbc: pdi: // hostname: port/kettle? Option = value & option = value То, что вы показываете в данный момент, еще недостаточно ясно: Какой язык является вашим кодом работы, вызывающим Java код в? можете ли вы передать свои переменные $ {...} в командную строку или журнал, чтобы узнать, содержат ли они правильную информацию? –