mba12 Saya memiliki masalah yang sama, terima kasih atas jawabannya!
Jadi, solusinya ada di sini (seperti yang Anda tunjukkan):Bagaimana cara menghubungkan ke MySQL dengan X509 menggunakan JDBC?
Saya juga menemukan yang ini:mengimpor sertifikat x509 yang ada dan kunci pribadi di keystore Java untuk digunakan di ssl
Hanya untuk klarifikasi
javax.net.ssl.keyStore
harus merupakan gabungan sertifikat klien + kunci, bukan hanya sertifikat klien seperti yang dijelaskan dalam panduan MySQL.
Untuk meringkas
- Kami memiliki:
server-ca.pem
- Sertifikat CA MySQL, dapat diunduh dari "Konfigurasi SSL -> Lihat Sertifikat CA Server"
client-cert.pem
- kunci publik klien, dapat diunduh dari "Sertifikat Klien -> sertifikat yang baru dibuat"
client-key.pem
- kunci pribadi klien, hanya dapat diunduh dari "Kotak dialog baru Sertifikat SSL dibuat"
Dijelaskan di sini:https://cloud.google.com/sql/docs/ konfigurasi-ssl-instance
Mari kita simpan di server-instance/ folder dan buat jks/ folder untuk file yang dihasilkan pada langkah 2.
-
Buat
truststore
berkas2.1. Salin
cacerts
JAVA asli kejks/truststore.jks
:cp $JAVA_HOME/jre/lib/security/cacerts jks/truststore.jks
2.2. Tambahkan Sertifikat CA Server MySQL / CA Google Cloud SQL Server
server-ca.pem
kecacerts
perwalian default JAVA yang telah kita salin di langkah 2.1.:keytool -importcert -noprompt -trustcacerts -keystore jks/truststore.jks -storepass changeit -alias googlecloudsqlservercacert -file server-instance/server-ca.pem
-
Buat
keystore
berkas3.1. Konversi sertifikat x509 dan kunci pribadi ke file pkcs12:
openssl pkcs12 -export -in server-instance/client-cert.pem -inkey server-instance/client-key.pem -out jks/client.p12
(masukkan password wajib), contoh:
p4ssw0rd
3.2. Konversikan file pkcs12 ke keystore java:
keytool -importkeystore -srckeystore jks/client.p12 -srcstoretype PKCS12 -destkeystore jks/keystore.jks -deststoretype JKS
(masukkan kata sandi yang sama), misalnya:
p4ssw0rd
Tentang konversi:http://blog.ejbca. org/2008/02/converting-keystores-between-jks-and.html