配置 ElasticSearch for HTTPS
在配置文件中配置
xpack.security.http.ssl.enabled: true
xpack.security.http.ssl.keystore.path: certs/elastic-certificates.p12
xpack.security.http.ssl.truststore.path: certs/elastic-certificates.p12
或在命令行中把参数加进去
- 启动后,使用 http://localhost:9200/_cat/nodes 无法访问集群,使用 http://localhost:9200/_cat/nodes 可以访问;
bin/elasticsearch -E node.name=node0 -E cluster.name=geektime -E path.data=node0_data -E http.port=9200 -E xpack.security.enabled=true -E xpack.security.transport.ssl.enabled=true -E xpack.security.transport.ssl.verification_mode=certificate -E xpack.security.transport.ssl.keystore.path=certs/elastic-certificates.p12 -E xpack.security.http.ssl.enabled=true -E xpack.security.http.ssl.keystore.path=certs/elastic-certificates.p12 -E xpack.security.http.ssl.truststore.path=certs/elastic-certificates.p12
配置 Kibana 通过 HTTPS 访问 ElasticSearch
通过 openssl 将 .p12 转为 .pem
openssl pkcs12 -in elastic-certificates.p12 -cacerts -nokeys -out elastic-ca.pem
生成后,将 elastic-ca.pem 拷贝到 Kibana/config/certs 下;
修改 kibana.yml
- 修改完了启动 kibana,验证 Kibana 可以通过 HTTPS 访问 ES 的集群;
elasticsearch.hosts: ["https://localhost:9200"]
elasticsearch.ssl.certificateAuthorities: [ "/Users/yiruan/geektime/kibana-7.1.0/config/certs/elastic-ca.pem" ]
elasticsearch.ssl.verificationMode: certificate
配置使用 HTTPS 访问 Kibana
生成 pem 的证书
bin/elasticsearch-certutil ca --pem
- 生成的 elastic-stack-ca.zip 有两个文件:ca.cert 和 ca.key;
- 把这两个文件拷贝到 Kibana/config/certs 下;
修改 kibana.yml
- 启动 Kibana,因为使用自签证书,启动的时候会报错,不用理会;
- 使用 HTTP 无法访问,换成 HTTPS 就可以了;
server.ssl.enabled: true
server.ssl.certificate: config/certs/instance.crt
server.ssl.key: config/certs/instance.key
网友评论