简而言之,尝试使用主机'b‘上的sql命令行接口通过internet通过open-ssl加密连接连接到主机'a’上的mysql服务器时,连接尝试将无限期地挂起。当在同一台计算机之间尝试非ssl连接时,连接通常会成功。
操作系统
服务器为CentOS版本6.4
客户端是CentOS 6.5版
SSL
在服务器上-
$ openssl version
OpenSSL 1.0.0-fips 29 Mar 2010在客户端上-
$ openssl version
OpenSSL 1.0.1e-fips 11 Feb 2013两端的证书都是自己生成的,遵循http://dev.mysql.com/doc/refman/5.1/en/creating-ssl-certs.html的示例1中的说明,除了“rsa:2048 -days 3600”,我将其更改为“rsa:3072 -days 3653”。
MYSQL
通过从客户机到服务器的非加密连接,我获得了以下信息-
Server version: 5.1.69-log Source distribution
SSL: Not in use
TCP port: 3306
mysql> show variables like '%ssl%';
+---------------+-------------------------------------+
| Variable_name | Value |
+---------------+-------------------------------------+
| have_openssl | YES |
| have_ssl | YES |
| ssl_ca | /etc/ssl/certs/ca-cert.pem |
| ssl_capath | |
| ssl_cert | /etc/ssl/certs/server-cert.pem |
| ssl_cipher | {truncated for readability} |
| ssl_key | /etc/ssl/certs/server-key.pem |
+---------------+-------------------------------------+
7 rows in set (0.08 sec)我截断了上面转储中的ssl-cipher行,因为密码列表占用了几行输出。
服务器在没有'--ssl*‘命令行参数的情况下启动,但在my.cnf中存在相应的行。
cli被调用为-
mysql --ssl-ca=/etc/ssl/certs/ca-cert.pem --ssl-cert=/etc/ssl/certs/client-cert.pem --ssl-key=/etc/ssl/certs/client-key.pem -u "$DBUSER" -p"$DBPW" -h "$DBSERVER" $DBNAME客户端版本为-
mysql Ver 14.14 Distrib 5.1.73, for redhat-linux-gnu (x86_64) using readline 5.1我已经检查了网络路由和防火墙问题,据我所知,防火墙、iplist策略或路由器都没有拒绝任何数据包。此外,在加密和非加密的情况下,netstat都将连接显示为“ESTABLISHED”,因此问题似乎不是在网络级别。
我想我一定是ssl配置有问题,但我不知道是什么问题。
感谢任何人的帮助!
发布于 2014-05-21 03:20:39
这毕竟是一个与网络相关的问题。守卫服务器的防火墙,即帕洛阿尔托网络3000系列,认为握手序列可能包含对应于CVE-2006-1517的威胁,因此,虽然它允许tcp/ip数据包,但它随后在分析内容后执行了DROP ALL PACKETS操作。解决方案是更改防火墙的配置,以允许来自客户端机器的这些类型的数据包而不会产生故障。
https://stackoverflow.com/questions/23762718
复制相似问题