我正在尝试从我自己的 Java 应用程序连接到启用 SSL 的 mysql 服务器。在 mysqld 上设置 SSL 并成功使用“REQUIRE ISSUER and SUBJECT”测试帐户后,我想在 Java 应用程序中使用该帐户。
我已经使用以下方式生成了私钥(文件名为 keystore.jks)和 csr密钥工具,并使用我自己的 CA(与 mysqld 及其证书使用的相同)签署了 csr。
签署 csr 后,我将 CA 和客户端证书导入 keystore.jks 文件。运行应用程序时无法建立 SSL 连接。相关日志:
...
[Raw read]: length = 5
0000: 16 00 00 02 FF .....
main, handling exception: javax.net.ssl.SSLException: Unsupported record version Unknown-0.0
main, SEND TLSv1 ALERT: fatal, description = unexpected_message
Padded plaintext before ENCRYPTION: len = 32
0000: 02 0A BE 0F AD 64 0E 9A 32 3B FE 76 EF 40 A4 C9 .....d..2;.v.@..
0010: B4 A7 F3 25 E7 E5 09 09 09 09 09 09 09 09 09 09 ...%............
main, WRITE: TLSv1 Alert, length = 32
[Raw write]: length = 37
0000: 15 03 01 00 20 AB 41 9E 37 F4 B8 44 A7 FD 91 B1 .... .A.7..D....
0010: 75 5A 42 C6 70 BF D4 DC EC 83 01 0C CF 64 C7 36 uZB.p........d.6
0020: 2F 69 EC D2 7F /i...
main, called closeSocket()
main, called close()
main, called closeInternal(true)
main, called close()
main, called closeInternal(true)
connection error
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
知道为什么会发生这种情况吗?
答案1
看起来您遇到了一个已知错误。请查看 mysql 上的相关文档错误追踪器