mysql 加密串連SSL

來源:互聯網
上載者:User

標籤:網路連接   加密   mysql   通訊   

1.SSL含義


SSL(Secure Sockets Layer 安全套接層),及其繼任者傳輸層安全(Transport Layer Security,TLS)是為網路通訊提供安全及資料完整性的一種安全性通訊協定。TLS與SSL在傳輸層對網路連接進行加密。


2.mysql5.7SSL配置和使用


注意:這種方法只使用5.7,mysql5.6也支援ssl加密串連,但是配置過程比較複雜,需要用到openssl命令來建立各類共秘鑰。


我的測試環境預設沒有啟用SSL,狀態為disabled

mysql> show  variables like ‘%ssl%‘;

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

| Variable_name | Value    |

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

| have_openssl  | DISABLED |

| have_ssl      | DISABLED |

| ssl_ca        |          |

| ssl_capath    |          |

| ssl_cert      |          |

| ssl_cipher    |          |

| ssl_crl       |          |

| ssl_crlpath   |          |

| ssl_key       |          |

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

可以通過執行命令mysql_ssl_rsa_setup建立pem檔案:

[[email protected] ~]# cd /usr/local/mysql/bin/


[[email protected] bin]# ./mysql_ssl_rsa_setup

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‘

-----


運行完命令mysql_ssl_rsa_setup後會探索資料目錄下多出了一些以pem結尾的檔案,而這些檔案就是開啟SSL串連所需要的檔案:

[[email protected] data]# ll *.pem

-rw------- 1 root root 1679 Nov 26 05:56 ca-key.pem

-rw-r--r-- 1 root root 1074 Nov 26 05:56 ca.pem

-rw-r--r-- 1 root root 1078 Nov 26 05:56 client-cert.pem

-rw------- 1 root root 1679 Nov 26 05:56 client-key.pem

-rw------- 1 root root 1679 Nov 26 05:56 private_key.pem

-rw-r--r-- 1 root root  451 Nov 26 05:56 public_key.pem

-rw-r--r-- 1 root root 1078 Nov 26 05:56 server-cert.pem

-rw------- 1 root root 1675 Nov 26 05:56 server-key.pem


新建立的檔案屬於root使用者,需要改變所有者和所屬組,然後重啟服務:

[[email protected] data]# chown -R mysql:mysql data/


[[email protected] ~]# /etc/init.d/mysqld restart


mysql> show variables like ‘%ssl%‘;

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

| Variable_name | Value           |

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

| have_openssl  | YES             |

| have_ssl      | YES             |

| ssl_ca        | ca.pem          |

| ssl_capath    |                 |

| ssl_cert      | server-cert.pem |

| ssl_cipher    |                 |

| ssl_crl       |                 |

| ssl_crlpath   |                 |

| ssl_key       | server-key.pem  |

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


指定IP,通過網路登陸測試:

[[email protected] ~]# mysql -uroot -p147258 -h192.168.91.5 


mysql>\s

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

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

Connection id:          10

Current database:

Current user:           [email protected]

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

......


本地用戶端登陸,沒指定IP,預設是不需要SSL加密:

[[email protected] ~]# mysql -uroot -p147258 -hlocalhost


mysql>\s

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

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

Connection id:          12

Current database:

Current user:           [email protected]

SSL:                    Not in use

......


mysql5.7使用者串連預設是使用ssl加密的,也可以用--ssl=0(mysql5.7也可以用--ssl-mode=dibaled)強制使用者不使用ssl加密:

[[email protected] ~]# mysql -ucdhu4 -p147258 -h192.168.91.5 --ssl=0   

或者:

[[email protected] ~]# mysql -ucdhu4 -p147258 -h192.168.91.5 --ssl-mode=disabled 


mysql>\s

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

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

Connection id:          18

Current database:

Current user:           [email protected]

SSL:                    Not in use

......


若在建立使用者時,希望該使用者每次必須通過SSL方式,則需在通過REQUIRE SSL來進行設定:

mysql>alter user [email protected]‘%‘ require ssl;


此時指定ssl=0(或者ssl_mode=disabled)則會報錯1045:

[[email protected] ~]# mysql -ucdhu5 -p147258 -h192.168.91.5 --ssl=0

ERROR 1045 (28000): Access denied for user ‘cdhu5‘@‘Darren1‘ (using password: YES)


3.ssl加密串連對效能的影響

開啟ssl加密串連是效能必然會下降,效能開銷在25%左右, 另外,由於SSL開銷較大的環節在建立串連,所以短連結的開銷可能會更大,因此推薦使用長串連或者串連池的方式來減小SSL所帶來的額外開銷,不過好在MySQL的應用習慣大部分也是長串連的方式。


本文出自 “10979687” 部落格,請務必保留此出處http://10989687.blog.51cto.com/10979687/1878716

mysql 加密串連SSL

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.