天天看點

Linux|UNIX下LAMP環境的搭建及常見問題[連載8]

現在我們來測試一下用戶端與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&gt; \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,如需轉載請自行聯系原作者