Mysql ssl весенняя загрузка 2

Привет, у меня есть сервер mysql и веб-служба kubernetes spring boot 2, работающая в 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. Любая помощь приложена thx!

0
0
491
2

Ответы 2

преобразование из PEM в Java KeyStore немного сложнее ...

а) преобразовать сертификат из PEM в PKCS12:

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

б) создать, а затем очистить хранилище доверенных сертификатов 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

г) создать, а затем очистить Java KeyStore:

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

д) импортируйте PKCS12 в пустой Java KeyStore:

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

Мартин Цайтлер и один из моих коллег указали мне правильное направление. Тем не менее, это не идеальный ответ, поэтому я отвечу на свой вопрос. Вы получаете 3 файла из облака Google: client.cert.pem, client-key.pem и server-ca.pem. Оказывается, вам не нужен файл server-ca.pem для подключения к серверу из рабочей среды mysql, но он вам нужен, если вы хотите подключиться к серверу из 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

Вот и все, ребята!

Другие вопросы по теме