天天看点

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,如需转载请自行联系原作者