mba12 Měl jsem stejný problém, děkuji za odpověď!
Takže řešení je zde (jak jste zdůraznil):Jak se připojit k MySQL s X509 pomocí JDBC?
Našel jsem také toto:importování stávajícího x509 certifikátu a soukromého klíče do úložiště klíčů Java pro použití v ssl
Jen pro upřesnění
javax.net.ssl.keyStore
musí být kombinován klientský certifikát + klíč, nikoli pouze klientský certifikát, jak je popsáno v příručce MySQL.
Shrnutí
- Máme:
server-ca.pem
- MySQL CA certifikát, lze stáhnout z "SSL Configuration -> View Server CA Certificate"
client-cert.pem
- klientský veřejný klíč, lze stáhnout z "Klientské certifikáty -> nově vytvořený certifikát"
client-key.pem
- klientský soukromý klíč, lze jej stáhnout pouze z "Dialogové okno Nový certifikát SSL vytvořen"
Popsáno zde:https://cloud.google.com/sql/docs/ configure-ssl-instance
Uložme je v server-instance/ složku a vytvořte jks/ složky pro vygenerované soubory v kroku 2.
-
Vytvořte
truststore
soubor2.1. Zkopírujte originální
cacerts
JAVA najks/truststore.jks
:cp $JAVA_HOME/jre/lib/security/cacerts jks/truststore.jks
2.2. Přidejte certifikát MySQL Server CA / Google Cloud SQL Server CA
server-ca.pem
do výchozího úložiště důvěryhodnosticacerts
JAVA který jsme zkopírovali v kroku 2.1.:keytool -importcert -noprompt -trustcacerts -keystore jks/truststore.jks -storepass changeit -alias googlecloudsqlservercacert -file server-instance/server-ca.pem
-
Vytvořte
keystore
soubor3.1. Převeďte certifikát x509 a soukromý klíč na soubor pkcs12:
openssl pkcs12 -export -in server-instance/client-cert.pem -inkey server-instance/client-key.pem -out jks/client.p12
(zadejte povinné heslo), například:
p4ssw0rd
3.2. Převeďte soubor pkcs12 na úložiště klíčů Java:
keytool -importkeystore -srckeystore jks/client.p12 -srcstoretype PKCS12 -destkeystore jks/keystore.jks -deststoretype JKS
(zadejte stejná hesla), například:
p4ssw0rd
O konverzi:http://blog.ejbca. org/2008/02/converting-keystores-between-jks-and.html