启用 Kibana HTTPS 连接的快速方法

在本教程中,您将学习如何启用 Kibana HTTPS 连接。 HTTPS 连接可确保数据在传输过程中加密。

Kibana 仅支持 TLS 加密协议。 使用 TLS,X.509 证书用于加密传输中的数据。 这种加密是不对称的,因为每个证书都包含用于加密操作的公钥和私钥。 Kibana 支持 PEM 或 PKCS#12 格式的证书和私钥。

启用 Kibana HTTPS 连接

安装 ELK 堆栈

当然,您需要运行 ELK 或 Kibana 才能启用 HTTPS。

但是,如果您还没有 ELK 堆栈,则可以使用以下链接中的指南;

在 Ubuntu 20.04 上安装 ELK Stack

在 CentOS 8 上安装 ELK Stack

启用 Kibana HTTPS 连接

安装 Kibana/ELK 后,您可以继续使用 TLS/SSL 启用 Kibana,以加密浏览器和 Kibana 之间的流量。

获取 TLS 证书和私钥

您可以选择从您喜欢的公共 CA 获取商业上受信任的证书和密钥。

同样,您可以为非公开的 Kibana 使用自签名证书。

如果您选择使用自签名证书,则有两种选择。 您可以使用以下方法获取 TLS 证书和密钥;

  • 开放式SSL
  • elasticsearch-certutil 工具

使用 OpenSSL 生成 Kibana 自签名 TLS 证书和密钥

使用以下命令生成 Kibana 自签名 TLS 证书和密钥 openssl,运行下面的命令。 请务必替换证书中的相应详细信息.

mkdir /etc/ssl/kibana
openssl genrsa -out /etc/ssl/kibana/kibana-key.key 2048
openssl req -new -x509 -sha512 -key /etc/ssl/kibana/kibana-key.key -out /etc/ssl/kibana/kibana-ca.crt -subj "/C=US/ST=Utah/L=Lehi/O=Kifarunix-demo/OU=IT/CN=*.kifarunix-demo.com"
openssl req -new -key /etc/ssl/kibana/kibana-key.key -out /etc/ssl/kibana/kibana-ca.csr -subj "/C=US/ST=Utah/L=Lehi/O=Kifarunix-demo/OU=IT/CN=*.kifarunix-demo.com"
openssl x509 -req -in /etc/ssl/kibana/kibana-ca.csr -CA /etc/ssl/kibana/kibana-ca.crt -CAkey /etc/ssl/kibana/kibana-key.key -CAcreateserial -sha512 -out /etc/ssl/kibana/kibana-cert.crt -days 3650

将 Kibana 设置为 TLS 证书和密钥的所有者;

chown -R kibana: /etc/ssl/kibana

使用 elasticsearch-certutil 生成 Kibana 自签名 TLS 证书

如果您不想使用 OpenSSL 生成 Kibana TLS 证书和密钥,则可以使用 elasticsearch-certutil 工具如下。

创建目录来存储证书文件;

mkdir /etc/ssl/kibana

生成证书:

/usr/share/elasticsearch/bin/elasticsearch-certutil cert -name kibana-certs -dns localhost,*.kifarunix-demo.com -s

该命令将使用您在命令行中提供的名称生成一个 PKCS#12 文件。 但是,它会提示您输入证书文件名以及是否使用密码。

样本输出。 对于每个,按 ENTER 选择提供的默认名称/空白密码或提供名称/密码并分别按 ENTER。

Please enter the desired output file [kibana-certs.p12]: Enter password for kibana-certs.p12 :

这会将证书文件放在 /usr/share/elasticsearch/ 与名字 kibana-certs.p12.

您可以将其复制到为上述证书创建的目录中;

cp /usr/share/elasticsearch/kibana-certs.p12 /etc/ssl/kibana

确保 基巴纳 用户拥有此文件。

chown -R kibana: /etc/ssl/kibana

启用 Kibana HTTPS 连接

您可以根据您生成 TLS 证书的方式启用 Kibana HTTPS 连接。

在 Kibana 中安装 PEM 格式的 TLS 证书

如果您使用生成的证书和密钥 开放式SSL,然后打开 Kibana 配置文件, /etc/kibana/kibana.yml, 用于编辑和取消注释行;

... #server.ssl.enabled: false #server.ssl.certificate: /path/to/your/server.crt #server.ssl.key: /path/to/your/server.key ... #elasticsearch.ssl.certificateAuthorities: [ "/path/to/your/CA.pem" ] ...

并更新生成的证书和密钥的路径。

vim /etc/kibana/kibana.yml

这样这条线可能看起来像;

... server.ssl.enabled: true server.ssl.certificate: /etc/ssl/kibana/kibana-cert.crt server.ssl.key: /etc/ssl/kibana/kibana-key.key ... # Optional server.ssl.certificateAuthorities: /etc/ssl/kibana/kibana-ca.crt ...

在 Kibana 中安装 PKCS#12 格式的 TLS 证书

如果您使用生成的证书和密钥 elasticsearch-certutil,然后打开 Kibana 配置文件, /etc/kibana/kibana.yml, 用于编辑和取消注释该行 #server.ssl.enabled: 假 并将值更改为 真的.

还添加了一行, server.ssl.keystore.path: "/path/to/p12/file"

只需运行下面的命令;

echo -e 'server.ssl.enabled: truenserver.ssl.keystore.path: "/etc/ssl/kibana/kibana-certs.p12"' >> /etc/kibana/kibana.yml

如果您的证书使用密码加密,请通过运行以下命令将解密密码添加到您的 Kibana 密钥库中;

/usr/share/kibana/bin/kibana-keystore add server.ssl.keyPassphrase

如果您使用空密码,则输入该行, server.ssl.keystore.password: "", 在 kibana.yml.

echo 'server.ssl.keystore.password: ""' >> /etc/kibana/kibana.yml

否则,您可能会遇到此类错误, Error: PKCS#12 MAC could not be verified. Invalid password.

从 PKCS 证书文件生成 PEM 文件

如果您生成了 PKCS 文件,则可以按如下方式从中生成 PEM 文件;

  • 生成CA证书;
openssl pkcs12 -in /etc/ssl/kibana/kibana-certs.p12 -nodes -nokeys -cacerts -out /etc/ssl/kibana/kibana-ca.crt
  • 生成证书文件;
openssl pkcs12 -in  /etc/ssl/kibana/kibana-certs.p12 -out /etc/ssl/kibana/kibana-cert.crt -nokeys
  • 生成密钥文件
openssl pkcs12 -in /etc/ssl/kibana/kibana-certs.p12 -out /etc/ssl/kibana/kibana-key.key -nodes -nocerts

获得 PEM 格式后,将所有权更改为 Kibana 并可以如上所示安装它们;

chown -R kibana: /etc/ssl/kibana

重启 Kibana 服务

systemctl restart kibana

检查日志以确保 Kibana 工作正常。

验证 Kibana HTTPS 配置

curl -sk -vvv "https://elk.kifarunix-demo.com:5601" --capath /etc/ssl/kibana/ 2>&1 | awk 'BEGIN { cert=0 } /^* Server certificate:/ { cert=1 } /^*/ { if (cert) print }'
* Server certificate: *  subject: C=US; ST=Utah; L=Lehi; O=Kifarunix-demo; OU=IT; CN=*.kifarunix-demo.com *  start date: May 25 18:52:15 2021 GMT *  expire date: May 23 18:52:15 2031 GMT *  issuer: C=US; ST=Utah; L=Lehi; O=Kifarunix-demo; OU=IT; CN=*.kifarunix-demo.com *  SSL certificate verify result: self signed certificate (18), continuing anyway. * Connection #0 to host elk.kifarunix-demo.com left intact

在浏览器上,您可以导航到 https://:5601

出现提示时,接受自签名 ssl 警告并继续。

我们关于如何启用 HTTPS 连接的指南到此结束。

参考

配置 Kibana 以启用 TLS

将 Wazuh Manager 与 ELK Stack 集成

使用 ElastAlert 配置 ELK 堆栈警报

在 ELK Stack 上可视化 WordPress 用户活动日志