SSL连接最佳实战

作者: 数据库信息  发布:2019-08-28

                                                                                         MySQL 5.7--------SSL连接最好实战

1. 背景

   * 在生养意况下,安全总是爱莫能助忽略的主题材料,数据库安全则是重大,因为有着的多寡都存放在数据库中

   * 当使用非加密格局连接MySQL数据库时,在互联网中传输的兼具新闻都以明火执杖的,可以被网络中全数人截取,敏感新闻只怕被泄漏。在传递敏感消息(如密码)时,能够动用SSL连接的不二等秘书技。

     *  版本小于5.7.6时依照 MySQL 5.6 SSL配置的主意张开。

 

2. MySQL 连接情势

 

   * socket连接

 

   * TCP非SSL连接

 

   * SSL安全连接

 

        * SSL 密码连接 [version > MySQL 5.7.5]

 

    * SSL 密码 密钥连接

 

3. SSL 简介

 

  * SSL指的是SSL/TLS,其是一种为了在Computer网络张开安全通讯的加密公约。要是客商的传输不是经过SSL的措施,那么其在互联网中以公开的措施开展传输,而那给存心不轨的人带来了可乘之隙。所以,今后游人如织网址其实私下认可已经打开了SSL效用,例如脸谱、Twtter、YouTube、天猫商城等。

澳门金莎娱乐网站 1

4. 环境 [ 关闭SeLinux ]

* system 环境

[root@MySQL ~]``# cat /etc/redhat-release

CentOS release 6.9 (Final)

[root@MySQL ~]``# uname -r

 

2.6.32-696.3.2.el6.x86_64

 

[root@MySQL ~]``# getenforce

Disabled

* MySQL 环境 [ MySQL 5.7安装前方篇章已做详细介绍 ]

 have_openssl 与 have_ssl 值都为DISABLED表示ssl未开启

[root@MySQL ~]``# mysql -p'123'

mysql: [Warning] Using a password on the ``command line interface can be insecure.

 

Welcome to the MySQL monitor.  Commands end with ; or g.

Your MySQL connection ``id is 6

Server version: 5.7.18 MySQL Community Server (GPL)

 

Copyright (c) 2000, 2017, Oracle and``/or its affiliates. All rights reserved.

 

Oracle is a registered trademark of Oracle Corporation and``/or its

affiliates. Other names may be trademarks of their respective

owners.

 

Type ``'help;' or ``'h' for help. Type ``'c' to ``clear the current input statement.

 

mysql> ``select version();

-----------

| version() |

-----------

| 5.7.18    |

-----------

1 row ``in set (0.00 sec)

 

mysql> show variables like ``'have%ssl%'``;

--------------- ----------

| Variable_name | Value    |

--------------- ----------

| have_openssl  | DISABLED |

| have_ssl      | DISABLED |

--------------- ----------

2 rows ``in set (0.02 sec)

 

mysql> show variables like ``'port'``;

--------------- -------

| Variable_name | Value |

--------------- -------

| port          | 3306  |

--------------- -------

1 row ``in set (0.01 sec)

 

mysql> show variables like ``'datadir'``;

--------------- -------------------

| Variable_name | Value             |

--------------- -------------------

| datadir       | ``/data/mysql_data/ |

--------------- -------------------

1 row ``in set (0.01 sec)

5. SSL配置

   *  利用自带工具生成SSL相关文件

 

[root@MySQL ~]``# /usr/local/mysql/bin/mysql_ssl_rsa_setup --datadir=/data/mysql_data

Generating a 2048 bit RSA private key

..........................................................................

.....

writing new private key to ``'ca-key.pem'

-----

Generating a 2048 bit RSA private key

.......................................................................................................................................................................

...

writing new private key to ``'server-key.pem'

-----

Generating a 2048 bit RSA private key

.....................

...........................................

writing new private key to ``'client-key.pem'

-----

 * 查看生成的SSL文件

[root@MySQL ~]``# ls -l /data/mysql_data/*.pem

-rw------- 1 root root 1679 Jun 24 20:54 ``/data/mysql_data/ca-key``.pem

-rw-r--r-- 1 root root 1074 Jun 24 20:54 ``/data/mysql_data/ca``.pem

-rw-r--r-- 1 root root 1078 Jun 24 20:54 ``/data/mysql_data/client-cert``.pem

-rw------- 1 root root 1675 Jun 24 20:54 ``/data/mysql_data/client-key``.pem

-rw------- 1 root root 1675 Jun 24 20:54 ``/data/mysql_data/private_key``.pem

-rw-r--r-- 1 root root  451 Jun 24 20:54 ``/data/mysql_data/public_key``.pem

-rw-r--r-- 1 root root 1078 Jun 24 20:54 ``/data/mysql_data/server-cert``.pem

-rw------- 1 root root 1675 Jun 24 20:54 ``/data/mysql_data/server-key``.pem

* 重启 MySQL 服务

[root@MySQL ~]``# /etc/init.d/mysqld restart

Shutting down MySQL.. SUCCESS!

Starting MySQL. SUCCESS!

  * 连接MySQL 查看SSL开启状态

     have_openssl 与 have_澳门金莎娱乐网站 ,ssl 值都为YES表示ssl开启成功

 

mysql> show variables like ``'have%ssl%'``;

--------------- -------

| Variable_name | Value |

--------------- -------

| have_openssl  | YES   |

| have_ssl      | YES   |

--------------- -------

2 rows ``in set (0.03 sec)

6.SSL

  • 密码连接测量检验**

    * 创立客户并点名 SSL 连接 [ MySQL 5.7后引入使用create user 格局开创顾客 ]

 

mysql> create user ``'ssl_test'``@``'%' identified by ``'123' require SSL;

Query OK, 0 rows affected (0.00 sec)

* 通过密码连接测量检验 [ 暗许使用SSL连接,必要指定不应用SSL连接 ]

[root@MySQL ~]``# mysql -h 192.168.60.129 -ussl_test -p'123' --ssl=0

mysql: [Warning] Using a password on the ``command line interface can be insecure.

ERROR 1045 (28000): Access denied ``for user ``'ssl_test'``@``'192.168.60.129' (using password: YES)

  * 通过 SSL 密码 连接测验

       SSL: Cipher in use is DHE-WranglerSA-AES256-SHA 表示通过SSL连接

 

[root@MySQL ~]``# mysql -h 192.168.60.129 -ussl_test -p'123'  --ssl

mysql: [Warning] Using a password on the ``command line interface can be insecure.

WARNING: --ssl is deprecated and will be removed ``in a future version. Use --ssl-mode instead.

Welcome to the MySQL monitor.  Commands end with ; or g.

Your MySQL connection ``id is 12

Server version: 5.7.18 MySQL Community Server (GPL)

 

Copyright (c) 2000, 2017, Oracle and``/or its affiliates. All rights reserved.

 

Oracle is a registered trademark of Oracle Corporation and``/or its

affiliates. Other names may be trademarks of their respective

owners.

 

Type ``'help;' or ``'h' for help. Type ``'c' to ``clear the current input statement.

 

mysql> s

--------------

mysql  Ver 14.14 Distrib 5.7.18, ``for linux-glibc2.5 (x86_64) using  EditLine wrapper

 

Connection ``id``:     12

Current database:

Current user:      ssl_test@192.168.60.129

SSL:            Cipher ``in use is DHE-RSA-AES256-SHA

Current pager:     stdout

Using outfile:     ``''

Using delimiter:   ;

Server version:        5.7.18 MySQL Community Server (GPL)

Protocol version:  10

Connection:     192.168.60.129 via TCP``/IP

Server characterset:   latin1

Db     characterset:   latin1

Client characterset:   utf8

Conn.  characterset:  utf8

TCP port:      3306

Uptime:         7 min 34 sec

 

Threads: 1  Questions: 29  Slow queries: 0  Opens: 112  Flush tables: 1  Open tables: 105  Queries per second avg: 0.063

--------------

 

**7. SSL

  • 密码 密钥连接**

 

    * 创造客户并点名 X509 [ SSL 密钥 ] 连接 [ MySQL 5.7后引入使用create user 方式创立顾客 ]

 

mysql> create user ``'X509_test'``@``'%' identified by ``'123' require X509;

Query OK, 0 rows affected (0.00 sec)

* 通过密码连接测量试验

[root@MySQL ~]``# mysql -h 192.168.60.129 -uX509_test -p'123' --ssl=0

mysql: [Warning] Using a password on the ``command line interface can be insecure.

ERROR 1045 (28000): Access denied ``for user ``'X509_test'``@``'192.168.60.129' (using password: YES)

* 通过 SSL 密码 连接测量试验

[root@MySQL ~]``# mysql -h 192.168.60.129 -uX509_test -p'123' --ssl

mysql: [Warning] Using a password on the ``command line interface can be insecure.

ERROR 1045 (28000): Access denied ``for user ``'X509_test'``@``'192.168.60.129' (using password: YES)

  * 通过 SSL 密码+密钥连接测量试验

    SSL: Cipher in use is DHE-本田UR-VSA-AES256-SHA 表示经过SSL连接

 

[root@MySQL ~]``# mysql -h 192.168.60.129 -uX509_test -p'123' --ssl-cert=/data/mysql_data/client-cert.pem --ssl-key=/data/mysql_data/client-key.pem

mysql: [Warning] Using a password on the ``command line interface can be insecure.

Welcome to the MySQL monitor.  Commands end with ; or g.

Your MySQL connection ``id is 21

Server version: 5.7.18 MySQL Community Server (GPL)

 

Copyright (c) 2000, 2017, Oracle and``/or its affiliates. All rights reserved.

 

Oracle is a registered trademark of Oracle Corporation and``/or its

affiliates. Other names may be trademarks of their respective

owners.

 

Type ``'help;' or ``'h' for help. Type ``'c' to ``clear the current input statement.

 

mysql> s

--------------

mysql  Ver 14.14 Distrib 5.7.18, ``for linux-glibc2.5 (x86_64) using  EditLine wrapper

 

Connection ``id``:     21

Current database:

Current user:      X509_test@192.168.60.129

SSL:            Cipher ``in use is DHE-RSA-AES256-SHA

Current pager:     stdout

Using outfile:     ``''

Using delimiter:   ;

Server version:        5.7.18 MySQL Community Server (GPL)

Protocol version:  10

Connection:     192.168.60.129 via TCP``/IP

Server characterset:   latin1

Db     characterset:   latin1

Client characterset:   utf8

Conn.  characterset:  utf8

TCP port:      3306

Uptime:         18 min 27 sec

 

Threads: 1  Questions: 40  Slow queries: 0  Opens: 118  Flush tables: 1  Open tables: 111  Queries per second avg: 0.036

--------------

本文由金沙澳门官网发布于数据库信息,转载请注明出处:SSL连接最佳实战

关键词: 金沙澳门官网

上一篇:澳门金莎娱乐网站:原生JDBC
下一篇:没有了