Debian,mysql yaSSL,设置证书

时间:2014-06-05 10:50:11

标签: mysql ssl debian

我在设置证书时遇到问题。我设法使用这个指令: http://dev.mysql.com/doc/refman/5.0/en/creating-ssl-certs.html
不幸的是,我需要使用我公司的CA和证书来完成这项工作。

[mysqld]
/* some params here */
ssl-ca=/tmp/ca-bundle.crt
ssl-cert=/tmp/[ip].crt
ssl-key=/tmp/[ip]-privkey.pem
ssl-cipher=DHE-RSA-AES256-SHA:AES128-SHA

MySQL的:

show variables like "%ssl%";
+---------------+--------------------------------------------+
| Variable_name | Value                                      |
+---------------+--------------------------------------------+
| have_openssl  | YES                                        |
| have_ssl      | YES                                        |
| ssl_ca        | /tmp/ca-bundle.crt                         |
| ssl_capath    |                                            |
| ssl_cert      | /tmp/[IP].crt                     |
| ssl_cipher    | DHE-RSA-AES256-SHA:AES128-SHA |
| ssl_key       | /tmp/[IP]-privkey.pem             |
+---------------+--------------------------------------------+

在没有ssl的情况下登录正常工作,如果我尝试使用ssl时会出现问题:

 mysql -u root -p --ssl-ca=/tmp/ca-bundle.crt
Enter password:
ERROR 2026 (HY000): SSL connection error: socket layer send error

服务器日志不包含有关此连接的任何信息,但tpcdump显示客户端和服务器之间存在一些数据包。

当我将此配置放在CentOS 6.5上时,一切正常,所以我认为问题存在于yassl的某个地方。

我检查了证书和密钥的标题(有人建议yassl有pkcs8的问题),但似乎很好:

$ head -n 1 [IP].crt
-----BEGIN CERTIFICATE-----
$ head -n 1 [IP]-privkey.pem
-----BEGIN RSA PRIVATE KEY-----

服务器版本:

mysql> select version();
+----------------------+
| version()            |
+----------------------+
| 5.5.37-0+wheezy1-log |
+----------------------+

有没有人有任何建议?

1 个答案:

答案 0 :(得分:1)

我设法解决了我的问题。

Mysql由于某种原因出现了crt证书问题,我所要做的就是将服务器证书转换为pem格式:

openssl x509 -in .crt -out .pem -outform PEM

CA证书必须保持不变(crt格式)。

show variables like "%ssl%";
+---------------+--------------------------------+
| Variable_name | Value                          |
+---------------+--------------------------------+
| have_openssl  | YES                            |
| have_ssl      | YES                            |
| ssl_ca        | /tmp/ca-bundle.crt             |
| ssl_capath    |                                |
| ssl_cert      | /tmp/[IP].pem                  |
| ssl_cipher    |                                |
| ssl_key       | /tmp/[IP]-privkey.pem          |
+---------------+--------------------------------+

和连接:

mysql -u test -ptesttest --ssl-ca=ca-bundle.crt --ssl-cert [CERT2].pem --ssl-key=[CERT2]-privkey.pem