現在我們來測試一下用戶端與MySQL伺服器的SSL連接配接是否正常。
啟動資料庫:
# /etc/init.d/mysqld restart
MySQL manager or server PID file could not be found! [FAILED]
Starting MySQL. [ OK ]
通過mysql用戶端登入到資料庫中
# /usr/local/mysql/bin/mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.1.33-log Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
在mysql下執行如下的幾個指令測試一下。
确認伺服器支援SSL連接配接
mysql> SHOW VARIABLES LIKE 'have_ssl';
+---------------+-------+
| Variable_name | Value |
| <b>have_ssl </b> | <b>YES</b> |
1 row in set (0.00 sec)
确認目前的會話是否是經過SSL來傳輸的
SHOW STATUS LIKE 'Ssl_cipher';
+---------------+--------------------+
| Variable_name | Value |
| <b>Ssl_cipher </b> | <b>DHE-RSA-AES256-SHA </b>|
1 row in set (0.01 sec)
上面的測試也可以通過\s指令來檢視
mysql> \s
--------------
/usr/local/mysql/bin/mysql Ver 14.14 Distrib 5.1.33, for pc-linux-gnu (i686) using EditLine wrapper
Connection id: 4
Current database:
Current user: root@localhost
<b>SSL: Cipher in use is DHE-RSA-AES256-SHA</b>
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 5.1.33-log Source distribution
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: latin1
Db characterset: latin1
Client characterset: latin1
Conn. characterset: latin1
UNIX socket: /tmp/mysql.sock
Uptime: 8 min 4 sec
Threads: 1 Questions: 20 Slow queries: 0 Opens: 15 Flush tables: 1 Open tables: 8 Queries per second avg: 0.41
如果黑體部分和這裡顯示是一緻的那說明你的MySQL伺服器和用戶端(本機)的SSL認證就配置成功了。
<b>用戶端(Linux</b><b>)不是本機的情況:</b>
1.請在客戶機上編譯安裝OpenSSl軟體和MySQL的用戶端
2.傳輸ca-cert.pem、client-cert.pem、client-key.pem三個檔案到用戶端對應目錄下,可以修改這個目錄
3.修改MySQL的配置檔案,添加對應的[mysql]字段:
#[mysql]部分,用戶端的機子上必須配置linux/UNIX
ssl-ca = /home/mysql/ca-cert.pem
ssl-cert = /home/mysql/client-cert.pem
ssl-key = /home/mysql/client-key.pem
請特别注意還有很重要的一步就是伺服器授權用戶端通路。
5.在伺服器上以資料庫root權限執行類似下面的語句:
GRANT ALL PRIVILEGES ON *.* TO 'ssluser'@'192.168.1.7' IDENTIFIED BY 'goodsecret' REQUIRE SSL;
這樣就添加了一個使用者ssluser,并隻允許這個使用者通過192.168.1.7的IP連接配接伺服器,且連接配接必須強制加密。當然我們可以指定ssluser以外的使用者,goodsecet以外的密碼。也可以指定隻允許連接配接特定資料庫特定的表。這不是本文的重點,就不多說了。
下一個連載将重點說明編譯Apache的步驟和一些要注意的事項。後邊的關于Apache的和PHP的編譯恐怕進度要慢點了。請見諒!
本文轉自xiaoyuwang 51CTO部落格,原文連結:http://blog.51cto.com/wangxiaoyu/201317,如需轉載請自行聯系原作者