91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

發布時間:2023-02-13 14:23:16 來源:億速云 閱讀:337 作者:iii 欄目:MySQL數據庫

這篇文章主要介紹了怎么使用SSL連接到遠程MySQL服務器的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇怎么使用SSL連接到遠程MySQL服務器文章都會有所收獲,下面我們一起來看看吧。

先決條件 (Prerequisite)

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

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

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

sudo apt install mysql-client

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

sudo: mysql: command not found

怎么使用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

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

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

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

SHOW VARIABLES LIKE ‘%ssl%’;

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

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

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

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

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

\s
\ s
or

要么狀態

怎么使用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
——————

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

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

SHOW SESSION STATUS LIKE ‘Ssl_cipher’;

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

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

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

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

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

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

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

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

skip_ssl
skip_ssl

怎么使用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’

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

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

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

怎么使用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服務器

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

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

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

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

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

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

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

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

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

Ifconfig

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

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

CREATE USER ‘SSL_USER’@'
CREATE USER'SSL_USER'@'

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

執行以下命令:

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

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

FLUSH PRIVILEGES;

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

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

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

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

sudo service mysql restart

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

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

mysql -u SSL_USER -p -h

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

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

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

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

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

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

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

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

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

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

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

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

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

mkdir ~/ssl-client

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

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

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

ALTER USER ‘SSL_USER’@'

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

mysql -u SSL_USER1 -p -h

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

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

讓我們通過在連接字符串中添加–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

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

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

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

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

  • /etc/my.cnf

  • /etc/mysql/my.cnf


  • /usr/etc/my.cnf


  • ~/.my.cnf


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

~/.my.cnf:

執行以下命令:

nano ~/.my.cnf

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

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

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

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

關于“怎么使用SSL連接到遠程MySQL服務器”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“怎么使用SSL連接到遠程MySQL服務器”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

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

AI

宁津县| 内黄县| 嘉荫县| 平塘县| 辽中县| 海淀区| 含山县| 柳林县| 阜平县| 秦安县| 横峰县| 鄂尔多斯市| 依兰县| 含山县| 三明市| 红河县| 庆阳市| 娱乐| 邯郸县| 盱眙县| 江川县| 兴海县| 商南县| 天峻县| 竹北市| 平度市| 朝阳县| 军事| 炉霍县| 日照市| 浪卡子县| 屯门区| 樟树市| 峨边| 永安市| 兴海县| 龙岩市| 舞阳县| 双峰县| 桐梓县| 武鸣县|