- 6.3.1 配置 MySQL 使用加密连接
- 6.3.2 加密连接 TLS 协议和密码
- 6.3.3 创建 SSL 和 RSA 证书和密钥
- 6.3.4 使用 SSH 从 Windows 远程连接到 MySQL
通过 MySQL 客户端和服务器之间的未加密连接,可以访问网络的人可以监视您的所有流量并检查客户端和服务器之间发送或接收的数据。
当您必须以安全的方式通过网络移动信息时,未加密的连接是不可接受的。要使任何类型的数据不可读,请使用加密。加密算法必须包含安全元素以抵御多种已知攻击,例如更改加密消息的顺序或重放数据两次。
MySQL 使用 TLS(传输层安全)协议支持客户端和服务器之间的加密连接。TLS 有时被称为 SSL(安全套接字层),但 MySQL 实际上并不使用 SSL 协议进行加密连接,因为它的加密很弱(请参阅 第 6.3.2 节,“加密连接 TLS 协议和密码”)。
TLS 使用加密算法来确保通过公共网络接收的数据是可信的。它具有检测数据更改、丢失或重放的机制。TLS 还包含使用 X.509 标准提供身份验证的算法。
X.509 使得在 Internet 上识别某人成为可能。基本上,应该有一个称为“证书颁发机构”(或 CA)的实体,可以将电子证书分配给需要它们的任何人。证书依赖于具有两个加密密钥(一个公钥和一个秘密密钥)的非对称加密算法。证书所有者可以将证书出示给另一方作为身份证明。证书由其所有者的公钥组成。使用此公钥加密的任何数据只能使用相应的私钥进行解密,该私钥由证书所有者持有。
使用 OpenSSL 提供对 MySQL 中加密连接的支持。有关 OpenSSL 支持的加密协议和密码的信息,请参阅 第 6.3.2 节“加密连接 TLS 协议和密码”。
笔记
从 MySQL 8.0.11 到 8.0.17,可以使用 wolfSSL 作为 OpenSSL 的替代品来编译 MySQL。从 MySQL 8.0.18 开始,移除了对 wolfSSL 的支持,并且所有 MySQL 构建都使用 OpenSSL。
默认情况下,如果服务器支持加密连接,MySQL 程序会尝试使用加密进行连接,如果无法建立加密连接,则回退到未加密的连接。有关影响加密连接使用的选项的信息,请参阅 第 6.3.1 节,“配置 MySQL 以使用加密连接”和 加密连接的命令选项。
MySQL 在每个连接的基础上执行加密,并且对给定用户使用加密可以是可选的或强制的。这使您可以根据各个应用程序的要求选择加密或未加密的连接。有关如何要求用户使用加密连接的信息,请参阅第 13.7.1.3 节“CREATE USER 语句”中语句 REQUIRE子句 的讨论。另见的描述 系统变量在第5.1.8节,“服务器系统变量”CREATE USERrequire_secure_transport
可以在源服务器和副本服务器之间使用加密连接。请参阅 第 17.3.1 节,“设置复制以使用加密连接”。
有关使用来自 MySQL C API 的加密连接的信息,请参阅支持加密连接。
也可以使用加密从 SSH 连接中连接到 MySQL 服务器主机。有关示例,请参阅 第 6.3.4 节,“使用 SSH 从 Windows 远程连接到 MySQL”。




