≫ 安全
在许多情况下,你可能希望加密客户端和服务器之间的流量。为此,可以指定服务器应使用HTTPS协议而不是HTTP。
要启用HTTPS,至少应在配置的searchd部分设置以下两个指令,并且至少应有一个监听器设置为https
此外,还可以在以下位置指定证书颁发机构的证书(即根证书):
- ssl_ca 证书颁发机构的证书文件
- 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