当我尝试使用mysql
和Workbench连接到远程SSL5.6 (Percona节点)服务器时,出现了一个隐秘的错误。我已经制作了自己的签名证书和自己的CA。
mysql -h host -p -u user --ssl-ca=ca-cert.pem
SSL错误2026 (HY000):
连接错误:协议版本不匹配
我读过一篇文章,说我应该包括密码选项。因此,我通过SSH连接到服务器并重新运行相同的命令(没有主机)来获取本地连接的密码。
mysql> show session status like '%cipher';
+---------------+-----------------------------+
| Variable_name | Value |
+---------------+-----------------------------+
| Ssl_cipher | ECDHE-RSA-AES128-GCM-SHA256 |
+---------------+-----------------------------+
当我重试包含密码时,我得到下一个错误消息。
mysql -h host -p -u user --ssl-ca=ca-cert.pem --ssl-cipher=ECDHE-RSA-AES128-GCM-SHA256
SSL错误2026 (HY000):
连接错误:无法设置要使用的密码
我从Connect to MySQL using SHA2了解到,我的客户端很可能无法使用SHA256或更高版本进行连接。
我检查了不具有高SHA的可用服务器密码:
ECDHE-RSA-AES128-SHA
ECDHE-ECDSA-AES128-SHA
ECDHE-RSA-AES256-SHA
ECDHE-ECDSA-AES256-SHA
DHE-DSS-AES128-SHA
DHE-RSA-AES128-SHA
DHE-RSA-AES256-SHA
AES128-SHA
DH-DSS-AES128-SHA
ECDH-ECDSA-AES128-SHA
AES256-SHA
DH-DSS-AES256-SHA
ECDH-ECDSA-AES256-SHA
我试过这些密码,但都没有用。有人能帮我诊断这个问题吗?会不会是我的证书有问题?或者是证书决定了密码?
更新:链接库
我已经检查了我的服务器,mysqld
的SSL连接到
libssl.so.1.0.0 => /lib/x86_64-linux-gnu/libssl.so.1.0.0
然而,我知道一个事实,Percona版本与OpenSSL是有联系的。对客户端进行编译
linux-vdso.so.1 =>
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2
libtinfo.so.5 => /lib/x86_64-linux-gnu/libtinfo.so.5
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6
/lib64/ld-linux-x86-64.so.2```
我没有看到任何与SSL相关的东西,但存在libdl
,这意味着可能存在动态加载。但是,我怀疑这个客户机很可能是为YaSSL编译的。
https://stackoverflow.com/questions/50844257
复制相似问题