在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

怎么使用SSL连接到远程MySQL服务器

121次阅读
没有评论

共计 4799 个字符,预计需要花费 12 分钟才能阅读完成。

这篇文章主要介绍了怎么使用 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

     

在本文中,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

     

输入 root 用户的密码,然后按键盘上的 Enter 键。

登录后,键入并执行以下命令:

SHOW VARIABLES LIKE ‘%ssl%’;

显示变量,例如 %ssl%;

根据计算机上安装 MySQL 版本,您可以获得不同的结果。如果运行的是 MySQL 服务器 5.7.27 及以下版本,则可能会得到以下结果:

     

     

可以看出,禁用了 have_openssl 和 have_ssl 变量。要确认当前连接未使用 SSL,请执行以下操作:

\s
\ s
or

要么状态

     

输出结果将类似于以下内容:

————–
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”;

如果该值为空,则表明当前连接未使用加密:

     

在当前连接使用加密的情况下,该值将不会为空,如下所示:

         

注意:我使用的是 MySQL 5.7.29 版本,默认情况下启用了 SSL,但在此示例中,我通过修改 my.cnf 文件以显示 SSL 的禁用状态来禁用 SSL:

     

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

skip_ssl
skip_ssl

     

要启用 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’

     

但是,如果您安装了 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 服务器”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注丸趣 TV 行业资讯频道。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-13发表,共计4799字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 成人性欧美丨区二区三区 | 一级毛片特级毛片免费的 | 97精品伊人久久大香线蕉 | 内射干少妇亚洲69xxx | 伊人精品久久久久中文字幕 | 九九精品免费 | 人人妻一区二区三区 | 免费观看亚洲人成网站 | 成人a毛片视频免费看 | 欧美性猛交xxxxx按摩欧美 | 日本黄大片视频在线播放 | 亚洲欧美手机在线观看 | 一级人与动毛片免费播放 | 亚洲 欧美 字幕 一区 在线 | 国产综合久久久久久鬼色 | 大ji巴好深好爽又大又粗视频 | 精品久久久无码人妻中文字幕 | 动漫黄视频 | www.夜夜夜 | 97久久精品午夜一区二区 | 女人喷潮完整视频 | 国产真人性做爰久久网站 | www.日本在线播放 | 69老司机精品视频免费观看 | 久操国产视频 | 欧美成人性教育做爰视频 | 久久久久亚洲av成人人电影 | 韩国成人在线视频 | 欧美成人免费全部观看天天性色 | 国产三级短视频 | 亚洲精品九色在线网站 | 欧美日韩国产一区二区三区欧 | 久久色图| 天堂一区二区三区精品 | 亚洲欧美色中文字幕在线 | 日韩视频 中文字幕 视频一区 | 黄色一级免费网站 | 国产毛片毛多水多的特级毛片 | 一本一本久久a久久综合精品蜜桃 | 日本午夜大片免费观看视频 | 亚洲国产精品一区二区www |