mba12 Jag hade samma problem, tack för svaret!
Så, lösningen är här (som du påpekade):Hur ansluter man till MySQL med X509 med JDBC?
Jag hittade också den här:importera ett befintligt x509-certifikat och privat nyckel i Java keystore för att använda i ssl
Bara för att klargöra
javax.net.ssl.keyStore
måste kombineras klientcertifikat + nyckel, inte bara klientcertifikat som beskrivs i MySQL-guiden.
För att sammanfatta
- Vi har:
server-ca.pem
- MySQL CA-certifikat, kan laddas ner från "SSL Configuration -> View Server CA Certificate"
client-cert.pem
- offentlig klientnyckel, kan laddas ner från "Klientcertifikat -> nyskapat certifikat"
client-key.pem
- klient privat nyckel, kan endast laddas ner från "Nytt SSL-certifikat skapat dialogrutan"
Beskrivs här:https://cloud.google.com/sql/docs/ configure-ssl-instans
Låt oss spara dem i server-instans/ mapp och skapa jks/ mapp för genererade filer i steg 2.
-
Skapa
truststore
fil2.1. Kopiera original JAVAs
cacerts
tilljks/truststore.jks
:cp $JAVA_HOME/jre/lib/security/cacerts jks/truststore.jks
2.2. Lägg till MySQL Server CA-certifikat / Google Cloud SQL Server CA
server-ca.pem
till JAVA:s standardförtroendecacerts
som vi har kopierat i steg 2.1.:keytool -importcert -noprompt -trustcacerts -keystore jks/truststore.jks -storepass changeit -alias googlecloudsqlservercacert -file server-instance/server-ca.pem
-
Skapa
keystore
fil3.1. Konvertera x509-certifikat och privat nyckel till en pkcs12-fil:
openssl pkcs12 -export -in server-instance/client-cert.pem -inkey server-instance/client-key.pem -out jks/client.p12
(ange obligatoriskt lösenord), till exempel:
p4ssw0rd
3.2. Konvertera pkcs12-filen till ett Java-nyckellager:
keytool -importkeystore -srckeystore jks/client.p12 -srcstoretype PKCS12 -destkeystore jks/keystore.jks -deststoretype JKS
(ange samma lösenord), till exempel:
p4ssw0rd
Om konvertering:http://blog.ejbca. org/2008/02/converting-keystores-between-jks-and.html