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"

    }

请提供一个参考网址

弹性社技术博客

广告
将在 10 秒后关闭
bannerAds