mba12 Tive o mesmo problema, obrigado pela resposta!
Então, a solução está aqui (como você apontou):Como se conectar ao MySQL com X509 usando JDBC?
Também encontrei este:importando um certificado x509 existente e uma chave privada no keystore Java para usar em SSL
Apenas para esclarecimento
javax.net.ssl.keyStore deve ser client cert + key combinados, não apenas client cert conforme descrito no guia MySQL. Para resumir
- Temos:
server-ca.pem - Certificado MySQL CA, pode ser baixado em "Configuração SSL -> Exibir certificado CA do servidor" client-cert.pem - chave pública do cliente, pode ser baixada em "Certificados do cliente -> certificado recém-criado" client-key.pem - chave privada do cliente, pode ser baixada apenas da "caixa de diálogo Novo certificado SSL criado" Descrito aqui:https://cloud.google.com/sql/docs/ configure-ssl-instance
Vamos salvá-los em server-instance/ pasta e crie jks/ pasta para arquivos gerados na etapa 2.
-
CriartruststoreArquivo
2.1. Copie oscacertsdo JAVA original parajks/truststore.jks:
cp $JAVA_HOME/jre/lib/security/cacerts jks/truststore.jks
2.2. Adicionar certificado de CA do MySQL Server / CA do Google Cloud SQL Serverserver-ca.pempara o armazenamento confiável padrão do JAVAcacertsque copiamos na etapa 2.1.:
keytool -importcert -noprompt -trustcacerts -keystore jks/truststore.jks -storepass changeit -alias googlecloudsqlservercacert -file server-instance/server-ca.pem
-
CriarkeystoreArquivo
3.1. Converta o certificado x509 e a chave privada em um arquivo pkcs12:
openssl pkcs12 -export -in server-instance/client-cert.pem -inkey server-instance/client-key.pem -out jks/client.p12
(digite a senha obrigatória), por exemplo:p4ssw0rd
3.2. Converta o arquivo pkcs12 em um keystore java:
keytool -importkeystore -srckeystore jks/client.p12 -srcstoretype PKCS12 -destkeystore jks/keystore.jks -deststoretype JKS
(digite as mesmas senhas), por exemplo:p4ssw0rd
Sobre a conversão:https://blog.ejbca. org/2008/02/converting-keystores-between-jks-and.html