【问题标题】:mysql ssl connection hangsmysql ssl连接挂起
【发布时间】:2014-05-20 14:33:03
【问题描述】:

简而言之 - 尝试使用主机 'b' 上的 sql 命令行界面通过开放式 SSL 加密连接通过 Internet 连接到主机 '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 配置一定有问题,但我不知道是什么。
任何帮助表示赞赏!

【问题讨论】:

  • 你确定端口是开放的吗? SSL 和非 SSL 通常是不同的端口。您可能可以运行一个 nbstat 来查看它是否正在尝试(或者它正在走多远)
  • 是的,网络工程师验证了这一点。他说无论是否加密,两者都通过端口 3306 进入,并且没有被阻止。

标签: mysql openssl connection


【解决方案1】:

这毕竟是一个与网络相关的问题。保护服务器的防火墙,一个帕洛阿尔托网络 3000 系列,认为握手序列可能包含对应于CVE-2006-1517 的威胁,因此在允许 tcp/ip 数据包的同时,它随后在分析内容后执行了DROP ALL PACKETS 操作.解决方案是更改防火墙的配置以允许来自客户端计算机的此类数据包而不会产生故障。

【讨论】:

  • 很高兴听到它已修复。解决这些类型的错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-07-25
  • 1970-01-01
  • 1970-01-01
  • 2015-03-26
  • 1970-01-01
  • 2019-03-18
  • 1970-01-01
相关资源
最近更新 更多