LoginSignup
4
5

More than 3 years have passed since last update.

Elastic StackのSSL、TLS、HTTPS設定

Posted at

目的

この記事では、Elastic Stack内のコンポーネント間でTLS、HTTPクライアント通信を暗号化する手順を纏めます。

1.Elasticsearchの設定手順

まずは、操作しやすいように環境変数を設定します。これは必須ではないです。

環境変数を設定
## bashrcを編集
vim ~/.bashrc

## 以下を追記
ES_HOME=/usr/share/elasticsearch
ES_PATH_CONF=/etc/elasticsearch

## bashrcを反映
. ~/.bashrc

Elasticsearchのホームディレクトリ配下で、証明書類を更新します。

CAとサーバー証明書を生成
cd $ES_HOME
bin/elasticsearch-certutil cert ca --pem

certificate-bundle.zipが生成されるので解凍します。

CAとサーバ証明書を解凍
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を編集します。

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

内蔵のユーザーパスワードを設定します。

内臓パスワードを設定(すべてpasswordで設定します)
/usr/share/elasticsearch/bin/elasticsearch-setup-passwords interactive

あとはリスタートすればOkです。一応、HTTPS経由で_cat/nodes APIにアクセスできるかどうかも以下コマンドで確認できます。

HTTPS経由でのアクセス確認
 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を編集します。

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

あとはリスタートすればOkです。

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を編集します。

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

あとはリスタートすればOkです。confでElasticsearch Output Pluginを使用する場合は以下のようにHTTPSでアクセスするための設定を入れます。

aaa
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"

    }

参考URL

Elastic社技術ブログ

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5