在Elasticsearch 8.x中设置SSL,你需要进行以下步骤:
- 生成SSL证书
- 配置Elasticsearch以使用SSL证书
- 配置客户端以信任证书
以下是一个简化的指南和示例配置:
生成SSL证书
你可以使用Elasticsearch自带的工具elasticsearch-certutil
来生成证书。
cd /path/to/elasticsearch
bin/elasticsearch-certutil ca
bin/elasticsearch-certutil cert --ca
这将生成必要的证书和私钥文件。
配置Elasticsearch以使用SSL
编辑Elasticsearch的配置文件elasticsearch.yml
,通常位于config
目录下。
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: /path/to/elasticsearch/elasticsearch.keystore
xpack.security.transport.ssl.truststore.path: /path/to/elasticsearch/truststore.jks
确保指定的路径是正确的,并且文件权限设置正确,以便Elasticsearch可以访问这些文件。
配置客户端以信任证书
当你配置例如Kibana或者Logstash以连接到Elasticsearch时,你需要指定它们信任的证书。
对于Kibana,编辑kibana.yml
:
elasticsearch.ssl.certificateAuthorities: ["/path/to/ca.crt"]
elasticsearch.ssl.verificationMode: certificate
对于Logstash,编辑其配置文件:
output {
elasticsearch {
ssl => true
ssl_certificate_authority => "/path/to/ca.crt"
ssl_verification_mode => "certificate"
}
}
确保将/path/to/ca.crt
替换为你的CA证书的实际路径。
重启Elasticsearch和任何相关服务以应用更改。
注意:这些步骤是基于Elasticsearch默认的安全设置进行的。如果你在Elasticsearch中启用了内置用户,你还需要设置相应的用户名和密码,并在客户端配置中指定它们。同样,确保你的Elasticsearch和相关服务的防火墙设置允许SSL所使用的端口(默认是443)。