mysql之使用SSL连接

使用SSL

默认情况下mysql使用不加密的连接,也可使用—compress选项压缩传送数据,但是仍旧不够安全;

 

配置SSL

系统必须支持OpenSSL/yaSSL,为了方便Mysql默认内置了yaSSL

查看服务器变量have_ssl,是否支持SSL

mysql> SHOW VARIABLES LIKE 'have_ssl';

+---------------+-------+

| Variable_name | Value |

+---------------+-------+

| have_ssl      | YES   |

+---------------+-------+

--若为disabled,说明此功能没有激活,使用—ssl-xxx选项重启服务器

http://dev.mysql.com/doc/mysql-security-excerpt/5.5/en/creating-ssl-certs.html

 

使用SSL连接

使用下列选项启动mysql服务器,即可接受使用SSL连接的客户端了

  • --ssl-ca identifies the Certificate Authority (CA) certificate.
  • --ssl-cert identifies the server public key certificate. This can be sent to the client and authenticated against the CA certificate that it has.
  • --ssl-key identifies the server private key.

例如

shell> mysqld --ssl-ca=ca-cert.pem \

         --ssl-cert=server-cert.pem \

         --ssl-key=server-key.pem

而客户端须采用同样的选项,且CA证书必须要与服务器的保持一致

如果某用户使用grant .. require ssl创建或没有特定的SSL要求,只需调用如下命令连接服务器

shell> mysql --ssl-ca=ca-cert.pem

--服务器启动时至少要指定—ssl-cert/--ssl-key

 

如果需要客户端证书,则在创建用户时需使用require X509选项,在连接服务器是必须如下所示,否则可能会被拒绝

shell> mysql --ssl-ca=ca-cert.pem \

       --ssl-cert=client-cert.pem \

       --ssl-key=client-key.pem

 

查看当前连接是否使用SSL,可查看Ssl_cipher的值

mysql> SHOW STATUS LIKE 'Ssl_cipher';

+---------------+--------------------+

| Variable_name | Value              |

+---------------+--------------------+

| Ssl_cipher    | DHE-RSA-AES256-SHA |

+---------------+--------------------+

 

 

 

 

请使用浏览器的分享功能分享到微信等