mysql ssl spring boot 2

问题描述 投票:0回答:2

嗨,我有一个mysql服务器和一个krubnetes spring boot 2 web服务在gcloud中运行。所以问题是我不知道如何将我的client-key.pem转换为jks文件。我已经使用以下命令将client-key.pem文件转换为jks文件。

keytool -import -trustcacerts -alias root -file client-cert.pem -keystore client-cert.jks

当我在key.pem上使用时,同样的命令给我一个错误,keytool错误:java.lang.exception: input not an x.509 certificate. pem文件很好(由Google云控制台生成),从mysql工作台完美运行。任何帮助appriacited thx!

openssl google-cloud-platform jks
2个回答
1
投票

PEM转换到Java KeyStore有点复杂......

a)将证书从PEM转换为PKCS12

openssl pkcs12 -export -out client-cert.pkcs12 -in client-cert.pem

b)创建并清空信任库KS

keytool -genkey -keyalg RSA -alias client -keystore truststore.ks
keytool -delete -alias client -keystore truststore.ks

c)将CA导入信任库KS

keytool -import -v -trustcacerts -alias client-ca -file client-cert.pem -keystore truststore.ks

d)创建然后清空Java KeyStore

keytool -genkey -keyalg RSA -alias client -keystore keystore.ks
keytool -delete -alias client -keystore keystore.ks

e)将PKCS12导入空的Java KeyStore

keytool -v -importkeystore -srckeystore client-cert.pkcs12 -srcstoretype PKCS12 -destkeystore keystore.ks -deststoretype JKS

0
投票

马丁·齐特勒和我的一位同事向我指出了正确的方向。仍然不是完美的答案所以我会回答我的问题。您从google cloud获得了3个文件:client.cert.pem,client-key.pem和server-ca.pem。事实证明,你不需要server-ca.pem文件从mysql workbench连接到服务器,但是你需要它,如果你想从java连接到服务器。首先openssl,可能在任何发行版上使用以下命令安装它。

sudo apt install openssl -y

之后,您键入以下命令:

openssl pkcs12 -export -out merged.pkcs12 -in client-cert.pem -inkey client-key.pem -certfile server-ca.pem
keytool -genkey -keyalg RSA -alias client -keystore truststore.jks
keytool -delete -alias client -keystore truststore.jks
keytool -import -v -trustcacerts -alias server-ca -file server-ca.pem -keystore truststore.jks
keytool -genkey -keyalg RSA -alias client -keystore keystore.jks
keytool -delete -alias client -keystore keystore.jks
keytool -v -importkeystore -srckeystore merged.pkcs12 -srcstoretype PKCS12 -destkeystore keystore.jks -destkeystore JKS

设置这些JDBC参数:

verifyServerCertificate=true
useSSL=true
requireSSL=true
clientCertificateKeyStorePassword=password
clientCertificateKeyStoreUrl=keystore.jks
trustCertificateKeyStorePassword=password
trustCertificateKeyStoreUrl=truststore.jks

这就是人们!

© www.soinside.com 2019 - 2024. All rights reserved.