我有一个基于Java的客户端(使用java 1.6.30),它打开了与Tomcat 7.0.26上部署的服务器的SSL连接.Tomcat使用的是Java 6,在server.xml中我配置了要使用的连接器sslProtocol="TLS".
我想知道使用的SSL版本是什么?是TLS1.0吗?TLS1.1?别的什么?
我们的 mysql 服务器配置为仅接受与 ssl 密码 DHE-RSA-AES256-GCM-SHA384 的连接。
我正在使用 java mysql-connector-java (8.0.15) 和 java 8 (openjdk version "1.8.0_191" OpenJDK Runtime Environment (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 上启用调试模式时,我得到忽略不支持的密码套件:TLS_DHE_RSA_WITH_AES_256_GCM_SHA384。
并带有以下消息
即将到来的握手状态:server_hello[2]
*** ClientHello, TLSv1.1 RandomCookie: GMT: 1535642319 bytes = { 168, 0, 213, 212, 68, 19, 189, 131, 12, 147, 76, 108, 65, 71,7,506 147,119,196,102,161,241,133,49,97,153,200}会话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_256_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_0RESOEMPT 方法:{INFORIONS_CSV
这里当服务器使用 TLSv1.2 时,客户端开始通过 TLSv1.1 进行通信
我还注意到 ExportControlled.java(包 com.mysql.cj.protocol;)将 SSLContext 创建为(第 563 行)
try{
SSLContext sslContext = SSLContext.getInstance("TLS"); …Run Code Online (Sandbox Code Playgroud)