Исключение сертификата при подключении к Azure SQL через JDBC со строкой подключения по умолчанию (которую консоль управления говорит использовать)

Я хочу подключиться к Azure SQL Server из jdbc.

Я копирую строку подключения из консоли управления Azure. Это что-то вроде:

JDBC: SQLServer://XXXX.database.windows.net:1433; база данных =YYYY; пользователь =ZZZZZ@XXXX, пароль =PPPPPPPPPPP, зашифровать = истина;hostNameInCertificate=* database.windows.net.

Когда я пытаюсь соединиться с этим значением, я получаю следующую ошибку:

com.microsoft.sqlserver.jdbc.SQLServerException: драйверу не удалось установить безопасное соединение с SQL Server с использованием шифрования Secure Sockets Layer (SSL). Ошибка: "java.security.cert.CertificateException: не удалось проверить имя сервера в сертификате во время инициализации протокола SSL. Имя сервера - *.database.windows.net, имя в сертификате - data.am2-1.database.windows.net.

Затем, если я изменю *.database.windows.net на data.am2-1.database.windows.net, как сказано в исключении, он будет работать нормально.

Так это проблема, чтобы установить это имя? Я чувствую, что если по умолчанию это подстановочный знак, то, вероятно, он изменится? и когда это произойдет, я предполагаю, что больше не смогу подключиться. У кого-нибудь еще была эта проблема? Я использую самые современные драйверы jdbc для SQL Server, которые я смог найти.

3 ответа

Решение

Оказывается, обновление версии сервера jlbc sql server до версии 4.0 устранило проблему.

Вы также можете добавитьtrustServerCertificate=trueв строке подключения, но это не рекомендуется с точки зрения безопасности.

У меня та же проблема с драйвером JDBC версии 4.1, понижение до 4.0 решило проблему

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