在我之前的文章:

我详细地讲述了如何安装 Elasticsearch 及 Kibana。在上面的安装中,Elasticsearch 的访问是 https 的,而 Kibana 的访问是 http 的。在我发布上面的第二篇文章后,有个开发者问该如何为 Kibana 有配置 https。你必须为 Kibana 创建服务器证书和私钥。 Kibana 在接收来自 Web 浏览器的连接时使用此服务器证书和相应的私钥。

Kibana https 配置 - Elastic Stack 8.0

Kibana https 配置 - Elastic Stack 8.0_哔哩哔哩_bilibili

首先,我们按照上面的文章安装 Elasticsearch 及 Kibana。然后,我们使用如下的命令为 Kibana 生成服务器证书和私钥:

./bin/elasticsearch-certutil csr -name kibana-server -dns example.com, localhost

在上面,我们生成的证书仅仅可以供 example.com 及 localhost 使用。上面的命令将生成如下的文件:

$ ls
LICENSE.txt     bin             data            logs
NOTICE.txt      config          jdk.app         modules
README.asciidoc csr-bundle.zip  lib             plugins

我们发现有一个叫做 csr-bundle.zip 的文件。我们使用如下的命令来进行解压缩:

unzip csr-bundle.zip 
$ unzip csr-bundle.zip 
Archive:  csr-bundle.zip
   creating: kibana-server/
  inflating: kibana-server/kibana-server.csr  
  inflating: kibana-server/kibana-server.key  

我们把上面的 kibana-server.csr 及 kibana-server.key 拷贝到 Kibana 的 config 目录下,这样在 Kibana config 目录下的文件是这样的:

$ pwd
/Users/liuxg/elastic/kibana-8.0.0/config
$ ls
kibana-server.key node.options kibana-server.csr kibana.yml

我们接下来使用如下的命令来生成 kibana-server.crt 文件:

openssl x509 -req -in kibana-server.csr -signkey kibana-server.key -out kibana-server.crt

上面的命令将生成一个新的文件 kibana-server.crt。

我们接下来在 Kibana 的配置文件 kibana.yml 中添加如下的配置:

server.ssl.certificate: config/kibana-server.crt
server.ssl.key: config/kibana-server.key
server.ssl.enabled: true

我们接下来重新启动 Kibana:

在我们首次登陆 Kibana 时,由于是自签名的证书,所以我们需要打入 thisisunsafe 才可以进入到上面的界面。这样我们就完成了 Kibana 的 https 的访问配置。 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐