如何配置Elasticsearch以启用SSL安全认证并支持跨集群访问?
时间: 2025-01-05 18:39:24 浏览: 7
配置Elasticsearch以启用SSL安全认证和跨集群访问涉及几个关键步骤:
1. **安装和生成证书**:
- 安装OpenSSL工具,如果尚未安装。
-x509 -newkey rsa:2048 -nodes -days 365 -keyout server.key -out server.crt`
2. **设置keystore**:
- 创建一个Java keystore文件,将证书放入其中:`keytool -import -trustcacerts -alias elasticsearch -file server.crt -keystore path/to/your/keystore.jks`
- 配置keystore的位置:`elasticsearch.yml`文件中添加 `path.data.ssl.keystore: path/to/your/keystore.jks`
3. **启用HTTPS**:
- 在`elasticsearch.yml`里添加以下行开启HTTPS:`http.cors.enabled: true`, `http.cors.allow-origin: "*"`, 并将`transport.tcp.port`更改为一个非默认的端口,如9301。
- 将`network.host`设置为`localhost`或`[::]`以便仅监听本机。
4. **配置客户端认证**:
- 如果需要对客户端进行身份验证,可以在`elasticsearch.yml`中设置`xpack.security.http.ssl.client_authentication`: `require` 或 `optional`。
5. **跨集群访问**:
- 确保目标集群也启用了SSL,并有相应的信任关系。你需要在源集群的`elasticsearch.yml`中配置远程集群的地址和认证信息(如果需要的话)。
- 使用`_cluster/settings` API来更新远程集群的连接设置,包括节点列表、SSL配置等。
```yaml
cluster.name: my-cluster-name
discovery.zen.ping.unicast.hosts: ["remote-cluster-host:9300"]
xpack.security.transport.client.pem: /path/to/remote-cluster-pem-file.pem
```
完成后,重启Elasticsearch服务并测试连接。记得检查日志以确认配置是否正确。
阅读全文