mba12 Miałem ten sam problem, dzięki za odpowiedź!
Tak więc rozwiązanie jest tutaj (jak wspomniałeś):Jak połączyć się z MySQL z X509 za pomocą JDBC?
Znalazłem też ten:importowanie istniejącego certyfikatu x509 i klucza prywatnego z magazynu kluczy Java do użycia w ssl
Tylko dla wyjaśnienia
javax.net.ssl.keyStore musi być połączonym certyfikatem klienta + kluczem, a nie tylko certyfikatem klienta, jak opisano w przewodniku MySQL.
Podsumowanie
- Mamy:
server-ca.pem - Certyfikat MySQL CA, można pobrać z "Konfiguracja SSL -> Wyświetl certyfikat CA serwera"
client-cert.pem - klucz publiczny klienta, można pobrać z "Certyfikaty klienta -> nowo utworzony certyfikat"
client-key.pem - klucz prywatny klienta, można pobrać tylko z okna dialogowego „Utworzono nowy certyfikat SSL”
Opisano tutaj:https://cloud.google.com/sql/docs/ konfiguracja-ssl-instancja
Zapiszmy je w instancji serwera/ folder i utwórz jks/ folder na wygenerowane pliki w kroku 2.
-
Utwórz
truststoreplik2.1. Skopiuj oryginalne
cacertsJAVA dojks/truststore.jks:cp $JAVA_HOME/jre/lib/security/cacerts jks/truststore.jks2.2. Dodaj certyfikat CA MySQL Server / CA Google Cloud SQL Server
server-ca.pemdo domyślnego truststore JAVAcacertsktóre skopiowaliśmy w kroku 2.1.:keytool -importcert -noprompt -trustcacerts -keystore jks/truststore.jks -storepass changeit -alias googlecloudsqlservercacert -file server-instance/server-ca.pem -
Utwórz
keystoreplik3.1. Konwertuj certyfikat x509 i klucz prywatny na plik pkcs12:
openssl pkcs12 -export -in server-instance/client-cert.pem -inkey server-instance/client-key.pem -out jks/client.p12(wprowadź obowiązkowe hasło), na przykład:
p4ssw0rd3.2. Konwertuj plik pkcs12 na magazyn kluczy Java:
keytool -importkeystore -srckeystore jks/client.p12 -srcstoretype PKCS12 -destkeystore jks/keystore.jks -deststoretype JKS(wprowadź te same hasła), na przykład:
p4ssw0rd
O konwersji:https://blog.ejbca. org/2008/02/converting-keystores-between-jks-and.html