Openssl mysql ssl春季启动2

Openssl mysql ssl春季启动2,openssl,google-cloud-platform,jks,Openssl,Google Cloud Platform,Jks,嗨,我有一个mysql服务器和一个运行在gcloud中的kubernetes spring boot 2 web服务。所以问题是我不知道如何将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.lan

嗨,我有一个mysql服务器和一个运行在gcloud中的kubernetes spring boot 2 web服务。所以问题是我不知道如何将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:输入不是x.509证书时,同一个命令会给我一个错误。

pem文件很好(由Google云控制台生成),可以在mysql工作台上完美工作。有任何帮助请通知thx

PEM
Java密钥库的转换有点复杂

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
keytool -import -v -trustcacerts -alias client-ca -file client-cert.pem -keystore truststore.ks
c) 将
CA
导入信任库
KS

keytool -genkey -keyalg RSA -alias client -keystore truststore.ks
keytool -delete -alias client -keystore truststore.ks
keytool -import -v -trustcacerts -alias client-ca -file client-cert.pem -keystore truststore.ks
d) 创建并清空
Java密钥库

keytool -genkey -keyalg RSA -alias client -keystore keystore.ks
keytool -delete -alias client -keystore keystore.ks
keytool -v -importkeystore -srckeystore client-cert.pkcs12 -srcstoretype PKCS12 -destkeystore keystore.ks -deststoretype JKS
e) 将
PKCS12
导入空的
Java密钥库

keytool -genkey -keyalg RSA -alias client -keystore keystore.ks
keytool -delete -alias client -keystore keystore.ks
keytool -v -importkeystore -srckeystore client-cert.pkcs12 -srcstoretype PKCS12 -destkeystore keystore.ks -deststoretype JKS

PEM
Java密钥库的转换有点复杂

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
keytool -import -v -trustcacerts -alias client-ca -file client-cert.pem -keystore truststore.ks
c) 将
CA
导入信任库
KS

keytool -genkey -keyalg RSA -alias client -keystore truststore.ks
keytool -delete -alias client -keystore truststore.ks
keytool -import -v -trustcacerts -alias client-ca -file client-cert.pem -keystore truststore.ks
d) 创建并清空
Java密钥库

keytool -genkey -keyalg RSA -alias client -keystore keystore.ks
keytool -delete -alias client -keystore keystore.ks
keytool -v -importkeystore -srckeystore client-cert.pkcs12 -srcstoretype PKCS12 -destkeystore keystore.ks -deststoretype JKS
e) 将
PKCS12
导入空的
Java密钥库

keytool -genkey -keyalg RSA -alias client -keystore keystore.ks
keytool -delete -alias client -keystore keystore.ks
keytool -v -importkeystore -srckeystore client-cert.pkcs12 -srcstoretype PKCS12 -destkeystore keystore.ks -deststoretype JKS

Martin Zeitler和我的一位同事为我指出了正确的方向。但这不是一个完美的答案,所以我会回答我的问题。 您可以从谷歌云中获得3个文件,分别是client.cert.pemclient key.pemserver-ca.pem。 事实证明,从mysql workbench连接到服务器不需要server-ca.pem文件,但如果要从java连接到服务器,则需要它。 首先,使用以下命令在任何发行版上安装openssl

sudo apt安装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

就是这样,伙计们

Martin Zeitler和我的一位同事为我指出了正确的方向。但这不是一个完美的答案,所以我会回答我的问题。 您可以从谷歌云中获得3个文件,分别是client.cert.pemclient key.pemserver-ca.pem。 事实证明,从mysql workbench连接到服务器不需要server-ca.pem文件,但如果要从java连接到服务器,则需要它。 首先,使用以下命令在任何发行版上安装openssl

sudo apt安装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
就是这样,伙计们