mba12 Имах същия проблем, благодаря за отговора!
И така, решението е тук (както посочихте):Как да се свържа с MySQL с X509 чрез JDBC?
Намерих и този:импортиране на съществуващ x509 сертификат и частен ключ в хранилището за ключове на Java за използване в ssl
Само за уточнение
javax.net.ssl.keyStore
трябва да бъде комбиниран клиентски сертификат + ключ, а не само клиентски сертификат, както е описано в ръководството за MySQL.
Да обобщим
- Имаме:
server-ca.pem
- MySQL CA сертификат, може да бъде изтеглен от "SSL Configuration -> View Server CA Certificate"
client-cert.pem
- клиентски публичен ключ, може да бъде изтеглен от "Клиентски сертификати -> новосъздадени сертификати"
client-key.pem
- клиентски частен ключ, може да бъде изтеглен само от "диалогов прозорец, създаден за нов SSL сертификат"
Описано тук:https://cloud.google.com/sql/docs/ configure-ssl-instance
Нека ги запишем в екземпляр на сървъра/ папка и създайте jks/ папка за генерирани файлове в стъпка 2.
-
Създайте
truststore
файл2.1. Копирайте оригиналните
cacerts
на JAVA къмjks/truststore.jks
:cp $JAVA_HOME/jre/lib/security/cacerts jks/truststore.jks
2.2. Добавете MySQL Server CA сертификат / Google Cloud SQL Server CA
server-ca.pem
къмcacerts
по подразбиране доверено хранилище на JAVA който копирахме в стъпка 2.1.:keytool -importcert -noprompt -trustcacerts -keystore jks/truststore.jks -storepass changeit -alias googlecloudsqlservercacert -file server-instance/server-ca.pem
-
Създайте
keystore
файл3.1. Преобразувайте x509 сертификат и частен ключ във файл pkcs12:
openssl pkcs12 -export -in server-instance/client-cert.pem -inkey server-instance/client-key.pem -out jks/client.p12
(въведете задължителна парола), например:
p4ssw0rd
3.2. Конвертирайте файла pkcs12 в java keystore:
keytool -importkeystore -srckeystore jks/client.p12 -srcstoretype PKCS12 -destkeystore jks/keystore.jks -deststoretype JKS
(въведете същите пароли), например:
p4ssw0rd
Относно преобразуването:http://blog.ejbca. org/2008/02/converting-keystores-between-jks-and.html