来源:自学PHP网 时间:2015-04-16 10:51 作者: 阅读:次
[导读] MySQL:SSL远程登录环境:linux mint 15安装openssl:1sudo apt-get install openssl查看mysql的ssl是否开启了(在mysql 命令行中):1show variables like 39;%ssl% 39;;若没开启则`have_openssl`和`h...
MySQL:SSL远程登录
环境:linux mint 15 安装openssl: 1 sudo apt-get install openssl 查看mysql的ssl是否开启了(在mysql 命令行中): 1 show variables like '%ssl%'; 若没开启则`have_openssl`和`have_ssl`选项的值为DISABLED。 生成证书(在mysql server主机下): 建议在/etc/mysql建立目录certs: 1 # cd /etc/mysql/ 2 # mkdir certs 3 # cd certs 4 # openssl genrsa 2048 > ca-key.pem 5 # openssl req -new -x509 -nodes -days 1095 -key ca-key.pem -out ca-cert.pem 6 # openssl req -newkey rsa:2048 -days 1095 -nodes -keyout server-key.pem -out server-req.pem 7 # openssl rsa -in server-key.pem -out server-key.pem 8 # openssl x509 -req -in server-req.pem -days 1095 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem 注意,如果`sudo openssl genrsa 2048 > ca-key.pem`的话会提示权限不够。 之后修改mysql服务器主机下的配置文件: 1 # vim /etc/mysql/my.cnf 在`[mysqld]`后添加: 1 ssl 2 ssl-cipher=DHE-RSA-AES256-SHA 3 ssl-ca=/etc/mysql/certs/ca-cert.pem 4 ssl-cert=/etc/mysql/certs/server-cert.pem 5 ssl-key=/etc/mysql/certs/server-key.pem 重启mysql,进入mysql命令行`show variables like '%ssl%';`看到: 01 +---------------+----------------------------------+ 02 | Variable_name | Value | 03 +---------------+----------------------------------+ 04 | have_openssl | YES | 05 | have_ssl | YES | 06 | ssl_ca | /etc/mysql/certs/ca-cert.pem | 07 | ssl_capath | | 08 | ssl_cert | /etc/mysql/certs/server-cert.pem | 09 | ssl_cipher | DHE-RSA-AES256-SHA | 10 | ssl_key | /etc/mysql/certs/server-key.pem | 11 +---------------+----------------------------------+ 配置 mysql client : 将ca-cert.pem拷贝到mysql client主机下的/etc/mysql/certs目录下,打开client下的my.cnf,在`[client]`后添加: 1 ssl 2 ssl-cipher=DHE-RSA-AES256-SHA 3 ssl-ca=/etc/mysql/certs/ca-cert.pem 重启client下的mysql。 开始远程登录吧: 在server 主机上为mysql建立一个新的用户: 1 GRANT ALL ON *.* TO 'ssl-user'@'%' identified by '123456' REQUIRE SSL; 2 flush privileges; 然后在client登录: 1 mysql -h <server-ip> -u ssl-user -p 2 mysql> \s 3 mysql> status \s和status作用相同,我们应该会看到: 1 SSL: Cipher in use is DHE-RSA-AES256-SHA 如果client的my.cnf没有配置好,是无法使用ssl-user用户登录server的。 使用navicat 常规方法就不说了。 1、使用SSH 注意在“常规”选项卡中,主机名或者ip地址是localhost,连接名自定义,用户名和密码是mysql server的user和对应的密码。 在“SSH”选项卡中,主机名是mysql server的ip,用户是mysql server所在主机的用户名。mysql server所在主机必须开启ssh服务。 2、使用SSL “常规”选项卡中的ip要改为server的ip,用户名本身应有“REQUIRE SSL”属性。 在“SSL”选项卡中,选中“使用SSL”,别忘了取消选中SSH。这时候可以正常连接,但是若选中“使用验证”并添加相应ca,死活没连上(不做讨论)。 3、使用HTTP 需要将navicat目录下的ntunnel_mysql.php拷贝到mysql server主机上的支持php的网站目录中(如/var/www)。通道地址即为该php文件的网络url。用户和密码是数据库的用户及其密码。 |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com