Elastic Stack的SSL、TLS、HTTPS设置
策略也是欲达成的目标。
在这篇文章中,我们将总结Elastic Stack中组件之间进行TLS和HTTP客户端通信加密的步骤。
1.Elasticsearch的配置步骤
首先,设置环境变量以方便操作。这不是必须的。
## bashrcを編集
vim ~/.bashrc
## 以下を追記
ES_HOME=/usr/share/elasticsearch
ES_PATH_CONF=/etc/elasticsearch
## bashrcを反映
. ~/.bashrc
我們將在Elasticsearch的主目錄下更新憑證文件。
cd $ES_HOME
bin/elasticsearch-certutil cert ca --pem
生成一个 certificate-bundle.zip 文件,然后解压缩。
unzip certificate-bundle.zip -d
将证书文件放置在/etc/elasticsearch/certs目录下。
#certsディレクトリをElasticsearchを作成
cd $ES_PATH_CONF
mkdir certs
pwd
/etc/elasticsearch/certs
#/etc/elasticsearch/certs配下に配置
ca.crt instance.crt instance.key
编辑elasticsearch.yml文件。
xpack.security.enabled: true
xpack.security.http.ssl.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.http.ssl.key: certs/instance.key
xpack.security.http.ssl.certificate: certs/instance.crt
xpack.security.http.ssl.certificate_authorities: certs/ca.crt
xpack.security.transport.ssl.key: certs/instance.key
xpack.security.transport.ssl.certificate: certs/instance.crt
xpack.security.transport.ssl.certificate_authorities: certs/ca.crt
xpack.security.http.ssl.verification_mode: certificate
设定内置的用户密码。
/usr/share/elasticsearch/bin/elasticsearch-setup-passwords interactive
只需要重启一下就可以了。先通过以下命令确认一下是否可以通过HTTPS访问_cat/nodes API。
curl -k --cacert /tmp/cert_blog/certs/ca/ca.crt -u elastic 'https://localhost:9200/_cat/nodes?v'
Enter host password for user 'elastic':
ip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
X.X.X.X 53 97 26 2.90 2.40 2.33 dilmrt * master
2. Kibana的配置步骤
首先,我们设置环境变量以便于操作。这并非强制要求。
## bashrcを編集
vim ~/.bashrc
## 以下を追記
KIBANA_HOME=/usr/share/kibana
KIBANA_PATH_CONFIG=/etc/kibana
## bashrcを反映
. ~/.bashrc
将证书类文件放置在/etc/kibana/config/certs目录下。
将与Elasticsearch生成的证书相同的证书放置在此目录下。
#certsディレクトリをElasticsearchを作成
cd $KIBANA_PATH_CONFIG
mkdir -p /etc/kibana/config/certs
pwd
/etc/kibana/config/certs
#//etc/kibana/config/certs配下に配置
ca.crt instance.crt instance.key
我会编辑 kibna.yml 文件。
xpack.security.enabled: true
## httpsになっていることに注意です。
elasticsearch.hosts: ["https://node1.elastic.test.com:9200"]
elasticsearch.username: "kibana"
elasticsearch.password: "password"
server.ssl.certificate: /etc/kibana/config/certs/instance.crt
server.ssl.key: /etc/kibana/config/certs/instance.key
elasticsearch.ssl.certificateAuthorities: [ "/etc/kibana/config/certs/ca.crt" ]
## 今回のやり方だとfalseにしないとエラーがでます。
elasticsearch.ssl.verificationMode: none
只需重新启动即可。
3. Logstash的配置步骤
将证书类别放置在/etc/logstash/config/certs目录下。
将与Elasticsearch生成的证书相同的证书放置在此目录中。
pwd
/etc/logstash/config/certs
ls -ll
total 12
-rw-r--r-- 1 root root 1200 Mar 23 02:47 ca.crt
-rw-r--r-- 1 root root 1147 Mar 23 02:47 instance.crt
-rw-r--r-- 1 root root 1675 Mar 23 02:47 instance.key
修改logstash.yml文件。
xpack.monitoring.enabled: true
xpack.monitoring.elasticsearch.username: elastic
xpack.monitoring.elasticsearch.password: password
## httpsになっていることに注意です。
xpack.monitoring.elasticsearch.hosts: [ 'https://node1.elastic.test.com:9200' ]
xpack.monitoring.elasticsearch.ssl.certificate_authority: "/etc/logstash/config/certs/ca.crt"
xpack.monitoring.elasticsearch.ssl.verification_mode: none
如果你要使用Elasticsearch输出插件,请在配置文件中加入以下设置,然后重新启动即可。
output{
elasticsearch {
## httpsになっていることに注意です。
hosts => ["https://node1.elastic.test.com:9200"]
user => "elastic"
password => "password"
ssl => true
## 今回のやり方だとfalseにしないとエラーがでます。
ssl_certificate_verification => false
cacert => "/etc/logstash/config/certs/ca.crt"
}
}
请提供一个参考网址
弹性社技术博客