中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Ubuntu上怎么使用SSL遠程連接MySQL服務器

發布時間:2022-11-17 10:03:37 來源:億速云 閱讀:184 作者:iii 欄目:服務器

今天小編給大家分享一下Ubuntu上怎么使用SSL遠程連接MySQL服務器的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

先決條件 (Prerequisite)

對于本文,需要安裝兩個Linux Ubuntu 18.04實例。

在其中一臺Ubuntu計算機上,使用“ 如何在Ubuntu 18.04上安裝MySQL”頁面中的指南安裝MySQL并配置root用戶。

在第二臺計算機上,使用以下命令安裝MySQL客戶端:

sudo apt install mysql-client

sudo apt安裝mysql客戶端

否則,當嘗試連接到遠程MySQL服務器時,您將收到以下消息:

sudo: mysql: command not found

sudo:mysql:找不到命令

Ubuntu上怎么使用SSL遠程連接MySQL服務器      

在本文中,MySQL服務器所在的計算機的名稱將稱為SSLServer1 ,從中我們將建立與MySQL服務器的安全SSL連接的計算機的名稱將稱為SSLServer2 。

檢查SSL狀態 (Checking status of SSL)

因此,讓我們開始為SSLServer1計算機上MySQL服務器配置SSL。 首先,讓我們檢查遠程MySQL服務器實例上SSL的當前狀態。

使用以下命令登錄到MySQL實例:

mysql -u root -p -h 127.0.0.1

mysql -u根-p -h 127.0.0.1

Ubuntu上怎么使用SSL遠程連接MySQL服務器      

輸入root用戶的密碼,然后按鍵盤上的Enter鍵。

登錄后,鍵入并執行以下命令:

SHOW VARIABLES LIKE ‘%ssl%’;

顯示變量,例如'%ssl%';

根據計算機上安裝MySQL版本,您可以獲得不同的結果。 如果運行的是MySQL服務器5.7.27及以下版本,則可能會得到以下結果:

Ubuntu上怎么使用SSL遠程連接MySQL服務器      

Ubuntu上怎么使用SSL遠程連接MySQL服務器      

可以看出,禁用了have_openssl和have_ssl變量。 要確認當前連接未使用SSL,請執行以下操作:

\s

\ s

or

要么

status

狀態

Ubuntu上怎么使用SSL遠程連接MySQL服務器      

輸出結果將類似于以下內容:

————–
mysql Ver 14.14 Distrib 5.7.29, for Linux (x86_64) using EditLine wrapper
Connection id: 3
Current database:
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ”
Using delimiter: ;
Server version: 5.7.29-0ubuntu0.18.04.1 (Ubuntu)
Protocol version: 10
Connection: 127.0.0.1 via TCP/IP
Server characterset: latin1
Db characterset: latin1
Client characterset: utf8
Conn. characterset: utf8
TCP port: 3306
Uptime: 10 min 10 sec
Threads: 1 Questions: 6 Slow queries: 0 Opens: 106 Flush tables: 1 Open tables: 99 Queries per second avg: 0.009
————–

——————
適用于Linux(x86_64)的mysql Ver 14.14 Distrib 5.7.29,使用EditLine包裝器
連接ID:3
當前數據庫:
當前用戶:root @ localhost
SSL:未使用
當前尋呼機:標準輸出
使用outfile:”
使用定界符:;
服務器版本:5.7.29-0ubuntu0.18.04.1(Ubuntu)
協議版本:10
連接:通過TCP / IP的127.0.0.1
服務器字符集:latin1
DB字符集:latin1
客戶端特征集:utf8
康涅狄格州字符集:utf8
TCP端口:3306
正常運行時間:10分鐘10秒
線程:1問題:6慢查詢:0打開:106刷新表:1打開表:每秒平均查詢99次:0.009
——————

Ubuntu上怎么使用SSL遠程連接MySQL服務器      

從上圖可以看出,該連接未使用SSL。

確定當前與MySQL服務器的連接是否使用加密的另一種方法是檢查Ssl_cipher狀態變量的會話值:

SHOW SESSION STATUS LIKE ‘Ssl_cipher’;

顯示會話狀態,例如“ Ssl_cipher”;

如果該值為空,則表明當前連接未使用加密:

Ubuntu上怎么使用SSL遠程連接MySQL服務器      

在當前連接使用加密的情況下,該值將不會為空,如下所示:

Ubuntu上怎么使用SSL遠程連接MySQL服務器      

  • 注意:我使用的是MySQL 5.7.29版本,默認情況下啟用了SSL,但在此示例中,我通過修改my.cnf文件以顯示SSL的禁用狀態來禁用 SSL:

Ubuntu上怎么使用SSL遠程連接MySQL服務器      

在此配置文件中,我輸入了以下命令來禁用SSL:

skip_ssl

skip_ssl

Ubuntu上怎么使用SSL遠程連接MySQL服務器      

要啟用SSL并生成適當的證書和密鑰文件,可以使用mysql_ssl_rsa_setup實用程序:

sudo mysql_ssl_rsa_setup –uid=mysql

sudo mysql_ssl_rsa_setup –uid = mysql

默認情況下,MySQL在以下位置存儲SSL證書: / var / lib / mysql

讓我們通過執行以下命令進行檢查:

sudo find /var/lib/mysql/ -name ‘*.pem’

sudo查找/ var / lib / mysql / -name'* .pem'

Ubuntu上怎么使用SSL遠程連接MySQL服務器      

但是,如果您安裝了MySQL 5.7.28及更高版本,則將在/ var / lib / mysql位置上自動生成SSL認證,并在啟動MySQL時啟用SSL加密:

Ubuntu上怎么使用SSL遠程連接MySQL服務器      

Ubuntu上怎么使用SSL遠程連接MySQL服務器      

配置遠程MySQL服務器 (Configuring remote MySQL server)

既然我們已經啟用了SSL,那么MySQL配置的下一步就是啟用(允許)遠程連接。 默認情況下,MySQL配置為偵聽來自其安裝機器的連接,并且僅接受來自本地主機 AKA 127.0.0.1 IP地址的連接。

如果現在嘗試從客戶端計算機(SSLServer2)連接到位于SSLServer1計算機上MySQL,我們可能會收到以下錯誤消息:

ERROR 2003 (HY000): Can’t connect to MySQL server on (111)

錯誤2003(HY000):無法連接到(111)上MySQL服務器

Ubuntu上怎么使用SSL遠程連接MySQL服務器      

要允許從任何遠程IP地址連接到MySQL服務器,請在MySQL配置文件/etc/mysql/my.cnf中添加以下內容:

bind-address = 0.0.0.0

綁定地址= 0.0.0.0

Ubuntu上怎么使用SSL遠程連接MySQL服務器      

現在,重新啟動MySQL服務,以使更改生效:

sudo service mysql restart

sudo服務mysql重新啟動

Ubuntu上怎么使用SSL遠程連接MySQL服務器      

當我們再次嘗試連接到遠程MySQL服務器時,我們將收到一條錯誤消息:

ERROR 1045 (28000): Access denied for user (using password: YES)

錯誤1045(28000):拒絕用戶訪問(使用密碼:是)

Ubuntu上怎么使用SSL遠程連接MySQL服務器      

當前,所有MySQL用戶都配置為從MySQL服務器本地連接。 要連接到遠程MySQL服務器,您將需要使用客戶端計算機的IP地址創建一個新用戶,在本例中,我們需要SSLServer2計算機的IP地址。

要在終端類型中查看機器的IP地址(SSLServer2),然后執行以下命令:

Ifconfig

Ifconfig

Ubuntu上怎么使用SSL遠程連接MySQL服務器      

現在,當我們獲得所有必要的信息時,讓我們通過添加REQUIRE SSL子句,創建一個可以通過安全連接連接到遠程MySQL的用戶:

CREATE USER ‘SSL_USER’@'

CREATE USER'SSL_USER'@'

創建用戶后,讓我們授予他訪問所有遠程MySQL數據庫的所有權限。

執行以下命令:

GRANT ALL ON *.* TO ‘SSL_USER’@'

全部授予*。* TO'SSL_USER'@'

要立即應用這些設置,請執行以下操作:

FLUSH PRIVILEGES;

沖洗特權;

在SSLServer1計算機上還需要完成的另一件事是將require_secure_transport選項添加到my.cnf文件并將其設置為ON 。

Ubuntu上怎么使用SSL遠程連接MySQL服務器      

這要求使用SSL建立所有遠程連接。

之后,重新啟動MySQL服務,以應用新設置:

sudo service mysql restart

sudo服務mysql重新啟動

這樣,我們就允許SSL_USER從遠程位置進行連接。 為了確認,讓我們用SSL_USER連接從SSLServer2機。

在SSLServer2計算機上,打開終端并執行以下命令:

mysql -u SSL_USER -p -h

mysql -u SSL_USER -p -h

Ubuntu上怎么使用SSL遠程連接MySQL服務器      

輸入SSL_USER的密碼后,您將能夠連接到位于SSLServer1機器上的遠程MySQL服務器:

Ubuntu上怎么使用SSL遠程連接MySQL服務器      

現在,鍵入\ s確認服務器狀態并確認您正在使用安全連接:

Ubuntu上怎么使用SSL遠程連接MySQL服務器      

要確認MySQL服務器僅接受安全連接并拒絕不安全,請嘗試使用相同的憑據進行連接,但這一次在連接字符串中添加–ssl-mode = disabled命令:

mysql -u SSL_USER -p -h –ssl-mode=disabled

mysql -u SSL_USER -p -h –ssl-mode =禁用

執行后,可能會出現以下錯誤:

ERROR 1045 (28000): Access denied for user ‘SSL_USER’@’SSLServer2_IP’ (using password: YES)

錯誤1045(28000):用戶'SSL_USER'@''SSLServer2_IP'的訪問被拒絕(使用密碼:是)

Ubuntu上怎么使用SSL遠程連接MySQL服務器      

到目前為止,您已經為MySQL服務器設置了由本地生成的證書頒發機構(CA)簽名的SSL證書,這足以為傳入的連接提供安全的加密。

為了提供SSLServer1和SSLServer2計算機之間的完全信任關系,將從SSLServer1計算機復制帶有客戶端證書和客戶端密鑰的CA證書到SSLServer2計算機,還將SSL_USER修改為需要信任證書。

首先在SSLServer2機器上,創建一個文件夾,將在其中放置客戶端文件:

mkdir ~/ssl-client

mkdir?/ ssl-client

使用SCP或SFTP將傳輸文件從一臺機器安全保護到另一臺機器上,或僅使用cat命令從SSLServer1機器上的CA證書 , client-cert.pem和client-key.pem文件中讀取和復制內容,然后創建這些文件并將內容粘貼到SSLServer2計算機上:

Ubuntu上怎么使用SSL遠程連接MySQL服務器      

復制適當的文件后,更改SSL_USER ,并放置REQUIRE X509子句:

ALTER USER ‘SSL_USER’@'

ALTER USER'SSL_USER'@'

現在,當使用SSL_USER用戶連接到遠程MySQL服務器時,必須指定–ssl-key和–ssl-cert選項,也建議這樣做,但不需要指定–ssl-ca選項。 如果我們在未指定客戶端證書的情況下連接到遠程MySQL服務器:

mysql -u SSL_USER1 -p -h

mysql -u SSL_USER1 -p -h

可能會出現以下錯誤消息:

ERROR 1045 (28000): Access denied for user ‘SSL_USER’@’SLLServer2_IP’ (using password: YES)

錯誤1045(28000):用戶'SSL_USER'@''SLLServer2_IP'的訪問被拒絕(使用密碼:是)

讓我們通過在連接字符串中添加–ssl-ca,–ssl-cert和–ssl-key選項來指定適當的客戶端證書,以指向?/ ssl-client目錄下的文件:

mysql -u SSL_USER -p -h SSLServer1_IP –ssl-ca=~/ssl-client/ca.pem –ssl-cert=~/ssl-client/client-cert.pem –ssl-key=~/ssl-client/client-key.pem

mysql -u SSL_USER -p -h SSLServer1_IP –ssl-ca =?/ ssl-client / ca.pem –ssl-cert =?/ ssl-client / client-cert.pem –ssl-key =?/ ssl-client /客戶端密鑰

按下Enter鍵后 ,您應該成功連接到遠程MySQL服務器:

Ubuntu上怎么使用SSL遠程連接MySQL服務器      

每次要連接到遠程MySQL服務器時,使用–ssl-ca,–ssl-cert和–ssl-key選項并輸入相關文件的路徑是一項整齊且耗時的工作,因此讓我們進行優化和改進連接可用性。

在SSLServer2機器中,如果my.cnf文件在以下位置不存在:

  • /etc/my.cnf


    /etc/my.cnf

  • /etc/mysql/my.cnf


    /etc/mysql/my.cnf

  • /usr/etc/my.cnf


    /usr/etc/my.cnf

  • ~/.my.cnf


    ?/ .my.cnf

我們可以在主目錄中創建一個:

~/.my.cnf:

?/ .my.cnf:

執行以下命令:

nano ~/.my.cnf

納米?/ .my.cnf

并在.my.cnf文件中粘貼并保存以下內容:

[client]
ssl-ca = ~/ssl-client/ca.pem
ssl-cert = ~/ssl-client/client-cert.pem
ssl-key = ~/ssl-client/client-key.pem

[客戶]
ssl-ca =?/ ssl-client / ca.pem
ssl-cert =?/ ssl-client / client-cert.pem
ssl-key =?/ ssl-client / client-key.pem

Ubuntu上怎么使用SSL遠程連接MySQL服務器      

現在,您可以連接到遠程MySQL服務器,而無需在連接字符串中添加–ssl-ca,–ssl-cert和–ssl-key選項:

mysql -u SSL_USER1 -p -h

mysql -u SSL_USER1 -p -h

Ubuntu上怎么使用SSL遠程連接MySQL服務器      

以上就是“Ubuntu上怎么使用SSL遠程連接MySQL服務器”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

永济市| 罗定市| 佛学| 伊川县| 博野县| 绩溪县| 元阳县| 邢台市| 卢氏县| 安顺市| 尼勒克县| 宁海县| 利川市| 四川省| 仙游县| 监利县| 康保县| 常熟市| 蒲江县| 甘泉县| 凌云县| 松阳县| 广河县| 汉沽区| 昭通市| 茶陵县| 晋州市| 九龙县| 通州市| 阿巴嘎旗| 宜君县| 林芝县| 增城市| 天津市| 邵东县| 昂仁县| 罗城| 永嘉县| 鹤峰县| 和静县| 修文县|