推荐答案
在 Elasticsearch 中配置 TLS/SSL 加密可以通过以下步骤实现:
生成证书:
- 使用工具如
elasticsearch-certutil
生成证书和密钥。 - 例如,生成一个 CA 证书:
bin/elasticsearch-certutil ca
- 生成节点证书:
bin/elasticsearch-certutil cert --ca /path/to/ca
- 使用工具如
配置 Elasticsearch:
- 在
elasticsearch.yml
文件中配置 TLS/SSL 相关参数:xpack.security.transport.ssl.enabled: true xpack.security.transport.ssl.verification_mode: certificate xpack.security.transport.ssl.keystore.path: /path/to/elastic-certificates.p12 xpack.security.transport.ssl.truststore.path: /path/to/elastic-certificates.p12
- 在
配置 Kibana(如果需要):
- 在
kibana.yml
文件中配置 TLS/SSL 相关参数:elasticsearch.hosts: ["https://localhost:9200"] elasticsearch.ssl.certificateAuthorities: ["/path/to/ca.crt"] elasticsearch.ssl.verificationMode: certificate
- 在
重启服务:
- 重启 Elasticsearch 和 Kibana 服务以使配置生效。
本题详细解读
1. 生成证书
Elasticsearch 提供了 elasticsearch-certutil
工具来简化证书的生成过程。首先需要生成一个 CA(Certificate Authority)证书,然后使用该 CA 证书为每个节点生成节点证书。这些证书将用于加密节点之间的通信。
2. 配置 Elasticsearch
在 elasticsearch.yml
配置文件中,需要启用 TLS/SSL 并指定证书和密钥的路径。xpack.security.transport.ssl.enabled
设置为 true
以启用传输层的 SSL 加密。xpack.security.transport.ssl.verification_mode
设置为 certificate
表示只验证证书的有效性。
3. 配置 Kibana
如果 Kibana 与 Elasticsearch 通信也需要加密,则需要在 kibana.yml
中配置相应的 SSL 参数。elasticsearch.ssl.certificateAuthorities
指定 CA 证书的路径,elasticsearch.ssl.verificationMode
设置为 certificate
以验证证书。
4. 重启服务
完成配置后,需要重启 Elasticsearch 和 Kibana 服务以使新的 TLS/SSL 配置生效。
通过以上步骤,Elasticsearch 集群将启用 TLS/SSL 加密,确保数据传输的安全性。