• <button id="eiyoe"><acronym id="eiyoe"></acronym></button>
    <em id="eiyoe"></em>

  • <rp id="eiyoe"><acronym id="eiyoe"><input id="eiyoe"></input></acronym></rp>
      查看: 206|回復: 0
      上一主題 下一主題

      mysql配置SSL證書登錄的實現

      80343

      主題

      0

      好友

      積分

      離線 發信

      跳轉到指定樓層
      樓主
      發表于 2021-09-16 12:21 | 只看該作者 | 倒序瀏覽
      目錄
      • 前言
      • 一、Mysql 啟用 SSL 配置
        • 1.1 檢查是否開啟 ssl
        • 1.2 設置用戶是否使用 SSL 連接
        • 1.3 使用 SSL 登錄
      • 二、總結

        前言

        國家等級保護三級安全要求,mysql 的 ssl 需要安全證書加密,這里需要研究一下,選幾個賬戶演示下即可。mysql 的版本為 8.0.20

        一、Mysql 啟用 SSL 配置

        1.1 檢查是否開啟 ssl

        mysql> show variables like '%ssl%';
        +--------------------+-----------------+
        | Variable_name      | Value           |
        +--------------------+-----------------+
        | have_openssl       | YES             |  
        | have_ssl           | YES             |  # 已開啟ssl
        | mysqlx_ssl_ca      |                 |
        | mysqlx_ssl_capath  |                 |
        | mysqlx_ssl_cert    |                 |
        | mysqlx_ssl_cipher  |                 |
        | mysqlx_ssl_crl     |                 |
        | mysqlx_ssl_crlpath |                 |
        | mysqlx_ssl_key     |                 |
        | ssl_ca             | ca.pem          |
        | ssl_capath         |                 |
        | ssl_cert           | server-cert.pem |
        | ssl_cipher         |                 |
        | ssl_crl            |                 |
        | ssl_crlpath        |                 |
        | ssl_fips_mode      | OFF             |
        | ssl_key            | server-key.pem  |
        +--------------------+-----------------+
        17 rows in set (0.56 sec)
        

        1.2 設置用戶是否使用 SSL 連接

        mysql> select ssl_type from user where user = 'dev_fqr' ;
        +----------+
        | ssl_type |
        +----------+
        |          |
        +----------+
        1 row in set (0.05 sec)
        

        默認用戶是沒有使用 SSL 登錄的。
        我們可以強制這個管理用戶使用 SSL 登錄。

        alter user 'xxx'@'%' require ssl;
        取消ssl驗證:
        alter user 'xxx'@'%' require none;
        

        更改后,該賬戶就無法登錄了,查看狀態變成下面這種

        mysql> select ssl_type from user where user = 'dev_fqr' ;
        +----------+
        | ssl_type |
        +----------+
        | ANY      |
        +----------+
        1 row in set (0.01 sec)
        

        測試登錄,本機無法直接登錄。

        [root@localhost data]# mysql -u dev_fqr -p
        Enter password: 
        ERROR 2026 (HY000): SSL connection error: SSL is required but the server doesn't support it
        

        遠程客戶端無法直接登錄:

        1.3 使用 SSL 登錄

        要想通過 SSL 登錄,就需要用到下面這幾個證書,通過 client 證書 與 server 端進行校驗通過才能登錄成功。

        1) 本機登錄

        在 data 目錄下的三個文件證書登錄。

        [root@localhost data]# mysql -udev_fqr -pDev@fqr2021 --ssl-ca=ca.pem --ssl-cert=client-cert.pem --ssl-key=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 55
        Server version: 8.0.22 MySQL Community Server - GPL
        ​
        Copyright (c) 2000, 2020, 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.
        ​
        You are enforcing ssl connection via unix socket. Please consider
        switching ssl off as it does not make connection via unix socket
        any more secure.
        mysql> 
        

        2)navicate 遠程客戶端登錄

        把這三個證書下載下來

        配置證書目錄,即可遠程訪問:

        二、總結

        因為測評的時候不會看 JDBC 里面的配置,所以 JDBC 就不改了,不然要改動的地方非常的多,具體演示的時候可以用提前準備兩個賬號,到時候用客戶端連接即可。
        目前兩臺 mysql 的ssl 用戶如下:

        到此這篇關于mysql配置SSL證書登錄的實現的文章就介紹到這了,更多相關mysql SSL證書登錄內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家! 

        來源:http://www.jb51.net/article/221744.htm