Как я могу обновить свое соединение MySQL через Spring для обработки TLSv1.2? - PullRequest
0 голосов
/ 16 мая 2019

У меня есть ранее работавший проект Spring MVC, использующий Spring Boot, Spring JPA, Spring Data. Мой администратор баз данных обновил систему безопасности на сервере MySQL, чтобы принимать только TLSv1.1 и TLSv1.2, и теперь мой веб-сайт Spring MVC не подключается к нему. Веб-сайт буквально умер в тот момент, когда на него установили TLS 1.2, так что это моя проблема с их безопасностью.

Обратите внимание, что мой блок разработчика полностью изолирован. Я не могу скопировать и вставить много строк кода, и мне приходится набирать его вручную.

Сначала попробовал добавить SSL через строку JDBC:

jdbc:mysql://host:3306/bdd_name?useUnicode=true&characterEncoding=utf8&useSSL=true&requireSSL=true

Во-вторых, попытался добавить дополнительную информацию (в этом примере):

jdbc:mysql://example.com:3306/MYDB?verifyServerCertificate=true&useSSL=true&requireSSL=true&clientCertificateKeyStoreUrl=file:cert/keystore.jks&clientCertificateKeyStorePassword=123456&trustCertificateKeyStoreUrl=file:cert/truststore.jks&trustCertificateKeyStorePassword=123456

В-третьих, попытался добавить безопасность Java:

-Djavax.net.ssl.keyStore=/path/to/keystore/keystore.jks
-Djavax.net.ssl.keyStorePassword=password
-Djavax.net.ssl.trustStore=/path/to/keystore/truststore.jks
-Djavax.net.ssl.trustStorePassword=password

В-четвертых, пытался добавить через Spring свойства:

server.ssl.enabled=true
server.ssl.enabled-protocols=TLSv1.2

После многих попыток решить эту проблему, у меня есть установка с 2 и 4 на месте. Свойство соединения jdbc разрешает и находит мои ключевые файлы и разблокирует их, поэтому изменения URL (2) работают.

Итак, после всего этого я все равно получаю:

Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

Caused by: Received fatal alert: handshake_failure
    at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
    at sun.security.ssl.Alerts.getSSLException(Alerts.java:154)
...