2014-06-05 72 views
2

我在設置證書時遇到了問題。我設法做到了這一點: http://dev.mysql.com/doc/refman/5.0/en/creating-ssl-certs.html
不幸的是,我需要使用我的公司CA和證書來做到這一點。Debian,mysql yaSSL,設置證書

[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----- 

Server版本:

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

沒有人有什麼建議?

回答

1

我設法解決我的問題。

MySQL的某些原因與CRT證書的問題,我不得不做的是服務器證書轉換爲PEM格式:

OpenSSL的X​​509 -in .CRT退房手續。質子交換膜-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