≫ 安全
在许多情况下,您可能希望加密客户端与服务器之间的流量。为此,您可以指定服务器应使用HTTPS协议而不是HTTP。
- with CA
- without CA
📋
带CA的示例:
ssl_ca = ca-cert.pem
ssl_cert = server-cert.pem
ssl_key = server-key.pem以下步骤将帮助您使用“openssl”工具生成SSL证书。
服务器可以使用证书颁发机构来验证证书的签名,但也可以仅使用私钥和证书(不带CA证书)工作。
openssl genrsa 2048 > ca-key.pem
要从私钥生成自签名CA(根)证书(确保至少填写“通用名称”),请使用以下命令:
openssl req -new -x509 -nodes -days 365 -key ca-key.pem -out ca-cert.pem
服务器使用服务器证书来保护与客户端的通信。要生成证书请求和服务器私钥(确保至少填写“通用名称”,且与根证书的通用名称不同),执行以下命令:
openssl req -newkey rsa:2048 -days 365 -nodes -keyout server-key.pem -out server-req.pem
openssl rsa -in server-key.pem -out server-key.pem
openssl x509 -req -in server-req.pem -days 365 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem
完成后,您可以通过运行以下命令验证密钥和证书文件是否正确生成:
openssl verify -CAfile ca-cert.pem server-cert.pem
当您的SSL配置有效时,以下功能可用:
- 您可以通过HTTPS连接到多协议端口(当未指定监听器类型时)并运行查询。请求和响应都将被SSL加密。
- 您可以通过HTTP连接到专用的https端口并运行查询。连接将被保护(尝试通过普通HTTP连接此端口将被拒绝,返回400错误码)。
- 您可以使用MySQL客户端通过安全连接连接到MySQL端口。会话将被保护。请注意,Linux的
mysql客户端默认尝试使用SSL,因此在有效的SSL配置下,典型的Manticore连接很可能是安全的。您可以通过连接后运行SQL的'status'命令来检查这一点。
如果您的SSL配置因任何原因无效(守护进程通过无法建立安全连接来检测),除了配置无效外,可能还有其他原因,例如无法加载适当的SSL库。在这种情况下,以下功能将无法工作或以非安全方式工作:
- 您无法通过HTTPS连接到多协议端口。连接将被断开。
- 您无法连接到专用的
https端口。HTTPS连接将被断开。 - 通过MySQL客户端连接到
mysql端口将不支持SSL保护。如果客户端要求SSL,连接将失败。如果不要求SSL,则使用普通MySQL或压缩连接。
- 二进制API连接(例如旧客户端连接或守护进程间的主从通信)不受保护。
- 复制的SSL需要单独设置。然而,由于复制的SST阶段是通过二进制API连接完成的,因此也不受保护。
- 您仍然可以使用任何外部代理(例如SSH隧道)来保护您的连接。
Last modified: October 29, 2025