gpt4 book ai didi

mysql jdbc 与 SSL 的连接在 tls 握手级别失败

转载 作者:太空宇宙 更新时间:2023-11-03 14:28:07 26 4
gpt4 key购买 nike

我们的 mysql 服务器配置为仅接受使用 ssl 密码 DHE-RSA-AES256-GCM-SHA384 的连接。

我正在使用 java mysql-connector-java (8.0.15) 和 java 8(openjdk 版本“1.8.0_191”OpenJDK 运行时环境(build 1.8.0_191-8u191-b12-2ubuntu0.16.04.1-b12)

当我使用下面的程序列出可用的密码时,我得到了可用的 TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 密码。

下面是列出可用密码的程序 https://confluence.atlassian.com/stashkb/files/679609085/679772359/1/1414093373406/Ciphers.java

但是当我在 ssl 上启用 Debug模式时,我得到忽略不受支持的密码套件:TLS_DHE_RSA_WITH_AES_256_GCM_SHA384。

和下面的消息

即将到来的握手状态:server_hello[2]

*** ClientHello, TLSv1.1RandomCookie: GMT: 1535642319 字节 = { 168, 0, 213, 212, 68, 19, 189, 131, 12, 147, 76, 108, 65, 77, 56, 170, 35, 147, 119, 196, 102, 161, 241, 133, 49, 97, 153, 200 } session ID:{}密码套件:[TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA,TLS_ECDH_RSA_WITH_AES_2 56_CBC_SHA,TLS_DHE_RSA_WITH_AES_256_CBC_SHA,TLS_DHE_DSS_WITH_AES_256_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES _128_CBC_SHA,TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA,TLS_ECDH_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_DSS_WITH_AES_128_CBC_SHA,TLS_EMPTY_RENEGOTI ATION_INFO_SCSV]压缩方法:{ 0 }

此处,当服务器使用 TLSv1.2 时,客户端开始通过 TLSv1.1 进行通信

我还注意到 ExportControlled.java(包 com.mysql.cj.protocol;)将 SSLContext 创建为(第 563 行)

try{
SSLContext sslContext = SSLContext.getInstance("TLS");
sslContext.init(kms, tms.toArray(new TrustManager[tms.size()]), null);
return sslContext;

}

请帮助我理解为什么忽略可用密码以及我应该如何连接到服务器

最佳答案

这很简单,我只需要将 enabledTLSProtocols 参数添加到 jdbc url

例如:-

jdbc:mysql://<hostname>:3115/<schema>?enabledTLSProtocols=TLSv1.2

关于mysql jdbc 与 SSL 的连接在 tls 握手级别失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55129768/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com