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.
-
Criartruststore
Arquivo
2.1. Copie oscacerts
do 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.pem
para o armazenamento confiável padrão do JAVAcacerts
que copiamos na etapa 2.1.:
keytool -importcert -noprompt -trustcacerts -keystore jks/truststore.jks -storepass changeit -alias googlecloudsqlservercacert -file server-instance/server-ca.pem
-
Criarkeystore
Arquivo
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:http://blog.ejbca. org/2008/02/converting-keystores-between-jks-and.html