mba12 Ho avuto lo stesso problema, grazie per la risposta!
Quindi, la soluzione è qui (come hai sottolineato):Come connettersi a MySQL con X509 utilizzando JDBC?
Ho trovato anche questo:importazione di un certificato x509 esistente e di una chiave privata in Java keystore da utilizzare in ssl
Solo per chiarimento
javax.net.ssl.keyStore
deve essere certificato client + chiave combinati, non solo certificato client come descritto nella guida MySQL.
Per riassumere
- Abbiamo:
server-ca.pem
- Certificato MySQL CA, può essere scaricato da "Configurazione SSL -> Visualizza certificato CA server"
client-cert.pem
- chiave pubblica client, scaricabile da "Certificati client -> certificato appena creato"
client-key.pem
- chiave privata del client, scaricabile solo da "Finestra di dialogo Crea nuovo certificato SSL"
Descritto qui:https://cloud.google.com/sql/docs/ configure-ssl-istanza
Salviamoli in istanza-server/ cartella e crea jks/ cartella per i file generati nel passaggio 2.
-
Crea
truststore
file2.1. Copia i
cacerts
originali di JAVA ajks/truststore.jks
:cp $JAVA_HOME/jre/lib/security/cacerts jks/truststore.jks
2.2. Aggiungi il certificato CA di MySQL Server/CA di Google Cloud SQL Server
server-ca.pem
al truststore predefinito di JAVAcacerts
che abbiamo copiato nel passaggio 2.1.:keytool -importcert -noprompt -trustcacerts -keystore jks/truststore.jks -storepass changeit -alias googlecloudsqlservercacert -file server-instance/server-ca.pem
-
Crea
keystore
file3.1. Converti certificato x509 e chiave privata in un file pkcs12:
openssl pkcs12 -export -in server-instance/client-cert.pem -inkey server-instance/client-key.pem -out jks/client.p12
(inserire la password obbligatoria), ad esempio:
p4ssw0rd
3.2. Converti il file pkcs12 in un keystore java:
keytool -importkeystore -srckeystore jks/client.p12 -srcstoretype PKCS12 -destkeystore jks/keystore.jks -deststoretype JKS
(inserisci le stesse password), ad esempio:
p4ssw0rd
Informazioni sulla conversione:http://blog.ejbca. org/2008/02/converting-keystores-between-jks-and.html