mba12 Jeg havde det samme problem, tak for svaret!
Så løsningen er her (som du påpegede):Hvordan opretter man forbindelse til MySQL med X509 ved hjælp af JDBC?
Jeg fandt også denne:import af et eksisterende x509-certifikat og en privat nøgle i Java keystore til brug i ssl
Bare for en præcisering
javax.net.ssl.keyStore
skal være klientcertifikat + nøgle kombineret, ikke kun klientcertifikat som beskrevet i MySQL guide.
For at opsummere
- Vi har:
server-ca.pem
- MySQL CA-certifikat, kan downloades fra "SSL Configuration -> View Server CA Certificate"
client-cert.pem
- klient offentlig nøgle, kan downloades fra "Client Certificates -> nyoprettet certifikat"
client-key.pem
- klient privat nøgle, kan kun downloades fra "Nyt SSL-certifikat oprettet dialogboks"
Beskrevet her:https://cloud.google.com/sql/docs/ configure-ssl-instans
Lad os gemme dem i server-instans/ mappe og opret jks/ mappe for genererede filer i trin 2.
-
Opret
truststore
fil2.1. Kopiér originale JAVAs
cacerts
tiljks/truststore.jks
:cp $JAVA_HOME/jre/lib/security/cacerts jks/truststore.jks
2.2. Tilføj MySQL Server CA-certifikat / Google Cloud SQL Server CA
server-ca.pem
til JAVAs standard truststorecacerts
som vi har kopieret i trin 2.1.:keytool -importcert -noprompt -trustcacerts -keystore jks/truststore.jks -storepass changeit -alias googlecloudsqlservercacert -file server-instance/server-ca.pem
-
Opret
keystore
fil3.1. Konverter x509-certifikat og privat nøgle til en pkcs12-fil:
openssl pkcs12 -export -in server-instance/client-cert.pem -inkey server-instance/client-key.pem -out jks/client.p12
(indtast obligatorisk adgangskode), for eksempel:
p4ssw0rd
3.2. Konverter pkcs12-filen til et java-nøglelager:
keytool -importkeystore -srckeystore jks/client.p12 -srcstoretype PKCS12 -destkeystore jks/keystore.jks -deststoretype JKS
(indtast samme adgangskoder), for eksempel:
p4ssw0rd
Om konvertering:http://blog.ejbca. org/2008/02/converting-keystores-between-jks-and.html