Командная строка для подключения JDBC к MySQL с SSL - PullRequest
0 голосов
/ 09 мая 2018

Я пытаюсь подключить инструмент моделирования данных (DbSchema) к базе данных MySQL, работающей в Google Cloud SQL. Облачный экземпляр требует SSL. Я загрузил необходимые ключи на свой Mac и могу подключиться через определенные инструменты, такие как Sequel Pro и MySQL Workbench. Тем не менее, эти инструменты дают мне возможность вводить ключевые места в их окнах подключения. Но DbSchema этого не делает - все, что он делает, это позволяет мне изменить строку подключения, которую он использует для подключения к БД через JDBC.

То, что я имею до сих пор:

jdbc:mysql://<MY IP ADDRESS>:3306?useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull&useOldAliasMetadataBehavior=true&useSSL=true&verifyServerCertificate=false

Это приводит к ошибке пароля, хотя PW, который я использовал, правильный. Я думаю, проблема в том, что JDBC не использует ключи SSL. Есть ли способ указать расположение ключей SSL в этой строке подключения?

1 Ответ

0 голосов
/ 09 мая 2018

Эта ссылка MySQL JDBC (для SSL) может помочь вам. Пожалуйста, смотрите Настройка аутентификации клиента :

Как только у вас есть личный ключ клиента и файлы сертификатов, которые вы хотите использовать, вам нужно импортировать их в хранилище ключей Java, чтобы они могли быть используется библиотекой SSL Java и Connector / J. Следующие Инструкции объясняют, как создать файл хранилища ключей:

  1. Преобразование клиентского ключа и файлов сертификатов в архив PKCS # 12:

    shell> openssl pkcs12 -export -in client-cert.pem -inkey client-key.pem \
      -name "mysqlclient" -passout pass:mypassword -out client-keystore.p12
    
  2. Импорт ключа клиента и сертификата в хранилище ключей Java:

    shell> keytool -importkeystore -srckeystore client-keystore.p12 -srcstoretype pkcs12 \
     -srcstorepass mypassword -destkeystore keystore -deststoretype JKS -deststorepass mypassword
    
  3. Установить свойства соединения JDBC:

    clientCertificateKeyStoreUrl=file:path_to_truststore_file 
    clientCertificateKeyStorePassword=mypassword
    
...