zoukankan      html  css  js  c++  java
  • Mysql-开启 SSL加密 mysql_ssl_rsa_setup

    MySQL 5.7 的SSL加密方法
     

    1、停止msyql

    /etc/init.d/mysql stop
     

    2、查看数据库的位置查看datadir的位置

    cat /etc/my.cnf
     

    3、安装证书

    /usr/bin/mysql_ssl_rsa_setup --datadir=/var/lib/mysql
     

    4、修改权限

    chown -R mysql:mysql /var/lib/mysql/*.pem
     

    5、修改/etc/my.cnf 在 [mysqld] 下面添加

     
    ssl-ca = /var/lib/mysql/ca.pem
    ssl-cert = /var/lib/mysql/server-cert.pem
    ssl-key = /var/lib/mysql/server-key.pem
     

    6、启动 mysql

    /etc/init.d/mysql start
     

    7、登录mysql

    mysql -uroot -p
     

    8、查看ssl参数状态,查看have_ssl,为YES,这表示已经开始支持SSL了

    show global variables like '%ssl%';
     
     

     

    9、查看SSL的加密方式

    show global variables like 'tls_version';
     
     

     

     

    10、配置SSL用户

     
    a、取消ssl验证
    CREATE USER 'yang0001'@'%' IDENTIFIED BY 'afdsa0897091';
    grant all privileges on *.* to yang0001@'%' identified by 'afdsa0897091' require none;
    alter user yang0001@'%' require none;
     
    b、强制ssl验证,即使设置了强制ssl,在登录时候使用--ssl-mode=disable依然可以避开ssl验证
    CREATE USER 'yang0001'@'%' IDENTIFIED BY 'afdsa0897091';
    grant all privileges on *.* to yang0001@'%' identified by 'afdsa0897091' require ssl;
    alter user abcssl@'%' require ssl;
     

    11、查看是否开启强制用户使用SSL

    select user,host,ssl_type,ssl_cipher  from mysql.user ;
     

    12、连接数据库的时候,带上SSL

     
    不指定客户端证书方式
    5.6
    --ssl、--disable-ssl、--skip-ssl:在mysql5.7是将被废弃的选项,将来版本不再支持,建议使用--ssl-mode选项,
    /usr/local/mysql/bin/mysql -uroot -p -h127.0.0.1 --ssl  默认为1
    /usr/local/mysql/bin/mysql -uroot -p -h127.0.0.1 --ssl=0
    /usr/local/mysql/bin/mysql -uroot -p -h127.0.0.1 --ssl=1  默认为1
    /usr/local/mysql/bin/mysql -uroot -p -h127.0.0.1 --disable-ssl
    /usr/local/mysql/bin/mysql -uroot -p -h127.0.0.1 --skip-ssl
     
    5.7
    /usr/local/mysql/bin/mysql -uroot -p -h127.0.0.1 --ssl-mode=disable
    /usr/local/mysql/bin/mysql -uroot -p -h127.0.0.1 --ssl-mode=required  默认required
     
    从另一台机器连接过去也可以ssl加密,表明不需要安装客户端证书的
    /usr/local/mysql/bin/mysql -uroot -p -h10.105.45.133 --ssl-mode=required
     
    13、指定客户端证书方式,5.6的方式,5.7也可以用
    /usr/local/mysql/bin/mysql --ssl-ca=/data/mysql/mysql3306/data/ca.pem
    --ssl-cert=/data/mysql/mysql3306/data/client-cert.pem
    --ssl-key=/data/mysql/mysql3306/data/client-key.pem
    -uroot -p -h127.0.0.1
     

    14、接验证连接是否用了ssl

    登录数据库后,输入 status
     
     

     

    总结
    1、MySQL5.7默认是开启SSL连接,如果强制用户使用SSL连接,那么应用程序的配置也需要明确指定SSL相关参数,否则程序会报错。
    2、虽然SSL方式使得安全性提高了,但是相对地使得QPS也降低23%左右。所以要谨慎选择:
          2.1、对于非常敏感核心的数据,或者QPS本来就不高的核心数据,可以采用SSL方式保障数据安全性;
          2.2、对于采用短链接、要求高性能的应用,或者不产生核心敏感数据的应用,性能和可用性才是首要,建议不要采用SSL方式;
     
    参考文章:
     
     
     
     

    但行好事,莫问前程!

    本文来自博客园,作者:yangphp,转载请注明原文链接:https://www.cnblogs.com/ypeih/p/15391155.html

  • 相关阅读:
    【服务器】【Windows】【3】开放服务器端口
    【服务器】【Windows】【2】把jar包做成服务,在Service中管理
    FZU 1753
    poj 1017
    poj 1666
    poj 1132
    ZOJ 2562 More Divisors
    POJ 2992 Divisors
    poj 2773 happy 2006
    poj 2407 Relatives
  • 原文地址:https://www.cnblogs.com/ypeih/p/15391155.html
Copyright © 2011-2022 走看看