У меня есть приложение Java (с гибернацией), которое я пытаюсь использовать в проекте с Google Cloud SQL + Compute Engine, но безуспешно.
Google Cloud SQL требует, чтобы я подключился к базе данных через SSL, используя server-ca.pem
, client-cert.pem
и client-key.pem
.
До этого я подключался к своей базе данных, используя свойства:
hibernate.connection.driver_class=com.mysql.cj.jdbc.Driver
hibernate.connection.url=jdbc:mysql://localhost/dbname?autoReconnect=true&useSSL=false
hibernate.connection.username=root
hibernate.connection.password=pass
hibernate.dialect=org.hibernate.dialect.MySQLDialect
Как я могу изменить это для работы с SSL?
Спасибо!
[EDIT]
Пробовал Пуджа Аггарвал ответить, но не сделалработа.
Использование -Djavax.net.debug=all
Получаю исключение:
Caused by: java.security.cert.CertificateException: java.security.cert.CertPathValidatorException: Path does not chain with any of the trust anchors
[РЕДАКТИРОВАТЬ 2]
Команды, которые я запускаю для генерации сертификатов:
openssl pkcs12 -export -in client-cert.pem -inkey client-key.pem \
-name "mysqldb" -passout pass:MYPASS -out client-keystore.p12
keytool -importkeystore -srckeystore client-keystore.p12 -srcstoretype pkcs12 \
-srcstorepass MYPASS -destkeystore keystore -deststoretype JKS -deststorepass MYPASS
И затем выполнено:
java -Djavax.net.ssl.keyStore=/home/user/cert/keystore -Djavax.net.ssl.keyStorePassword=MYPASS -jar MyApp.jar
PS: я могу подключиться, используя:
mysql -uroot -p -h 192.00.00.00 \
--ssl-ca=server-ca.pem --ssl-cert=client-cert.pem \
--ssl-key=client-key.pem