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
truststore
plik2.1. Skopiuj oryginalne
cacerts
JAVA dojks/truststore.jks
:cp $JAVA_HOME/jre/lib/security/cacerts jks/truststore.jks
2.2. Dodaj certyfikat CA MySQL Server / CA Google Cloud SQL Server
server-ca.pem
do domyślnego truststore JAVAcacerts
któ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
keystore
plik3.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:
p4ssw0rd
3.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:http://blog.ejbca. org/2008/02/converting-keystores-between-jks-and.html