目录

环境

配置流程介绍

ES配置

1.生成CA根证书

2.用CA根证书生成用户/节点证书

3.配置ES安装目录下的 config/elasticsearch.yml 文件

4.配置加密密文

5.生成http.p12文件(重点)

下载OpenSSL提取从http.p12提取crt证书

配置Kibana 的 kibana.yml 文件

配置Kibana对外的HTTPS支持

常见错误

同时配置密文和明文

没有添加客户端地址报错Unable to retrieve version information from Elasticsearch nodes. Hostname/IP does not match certificate's altnames: IP: 127.0.0.1 is not in the cert's list:

报错:读取不到IKAnalyzer.cfg.xml

修改ES账号密码

参考地址

环境

操作系统:Windows10

ElasticSearch(后面简称ES)版本:9.0.1,

Kibana版本:9.0.1

配置流程介绍

其实总的来说就三步

  1. 生成CA根证书:相当于你的签名,代表你的信任
  2. 根据CA根证书生成节点证书:用你的印章去盖章节点证书,代表这个节点被你信任,用于transport层的ssl连接,用于节点间通信(配置集群的时候)
  3. 根据CA证书生成Http证书:用于HTTP层的ssl连接,用于客户端/服务端的连接,比如kibana连接ES

后面的配置文件中可以看到有xpack.security.transport.ssl和xpack.security.http.ssl的配置。

ES配置

1.生成CA根证书

在ES的bin文件夹下打开cmd:输入如下命令后你要输入文件名称(直接回车是默认文件名elastic-stack-ca.p12)和密码。

elasticsearch-certutil ca

2.用CA根证书生成用户/节点证书

根据CA证书生成ES节点通信加密证书,输入如下命令后,提示你输入证书的文件名称(默认elastic-certificates.p12)和密码。

elasticsearch-certutil cert --ca elastic-stack-ca.p12

3.配置ES安装目录下的 config/elasticsearch.yml 文件
xpack.security.transport.ssl.
# 这里的属性值是第二步生成的文件路径
xpack.security.transport.ssl:
  client_authentication: required
  enabled: true
  verification_mode: certificate
  keystore.path: certs/elastic-certificates.p12
  truststore.path: certs/elastic-certificates.p12
 
4.配置加密密文

分别输入一下两条命令,每输入一条都要输入一次密码(第二步配置的密码)

elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password
elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password

5.生成http.p12文件(重点)

输入elasticsearch-certutil http后注意光标

出现Generate a CSR? [y/N]后输入N回车

使用现有的CA文件:y

输入现有CA证书的路径:我这里输入的是相对路径:certs/elastic-stack-ca.cp12(输错不用担心,它会提示,看清提示再输一次就好了)。输入路径后要输入CA的密码。就第一步设置的密码。

cmd的位置和文件位置如下

设置证书的有效期:我这里是2年(2y)

创建节点,这里创建一个节点,节点名称为node-1

添加域名:这里输入localhost,在按回车可以输入下一个域名,连续两次回车可以跳下一步

这里配置客户端的ip地址(就是能连接ES的客户端系统,比如Kibana,java等,建议配置127.0.0.1,否则会报错,具体看末尾)

这里第一句应该是是否要改上一个节点内容,第二句是否再加节点,我一台电脑输入N,各位看情况来

这里是配置http.p12文件的加密密码,回车为空。我这里配置为空,如果这里配置密码后续还要配置一下,后面会有粗体标注

这里是生成的压缩包路径,直接回车就好了,会在cmd的当前文件夹下生成

配置错了可以重新配,记得把压缩包先删了或挪走,它不会覆盖

配置elasticsearch.yml文件。这里是password是明文,第4步cmd输入的命令会帮你进行加密,推荐使用第4步的。

xpack.security.http.ssl:
  enabled: true
  keystore.path: certs/http.p12
  keystore.password: ""

如果之前配置了http.p12的密码,则需要输入下面的命令进行配置

elasticsearch-keystore add xpack.security.http.ssl.keystore.secure_password

下载OpenSSL提取从http.p12提取crt证书

网上很多人都是使用p12文件,但是我使用该文件的时候Kibana闪退,经过查找,改用crt文件才可以正常连接,大家也可以试着使用p12文件看看是否会遇到该问题。

下载地址:Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions

下载一个light级的即可。下载后配置环境变量:D:\Program Files\OpenSSL-Win64\bin(换成你自己的路径)

在含有http.p12的目录打开cmd,输入openssl pkcs12 -in http.p12 -cacerts -nokeys -out http_ca.crt

配置Kibana 的 kibana.yml 文件
# 配置证书地址,这里配置的crt文件的绝对路径,我这个版本配置pem文件会出现闪退
elasticsearch.ssl.certificateAuthorities: [ "D:/Program Files/ElasticSearch/elasticsearch-9.0.1/config/certs/http_ca.crt" ]
# 配置 ES https连接地址
elasticsearch.hosts: https://127.0.0.1:9200
# ES的账号,如果忘记了需要在ES重置,这与超级账号elastic不同
elasticsearch.username: "kibana_system"
elasticsearch.password: "q123456"

配置HTTPS访问Kibana

输入一下命令,生成证书和私钥

elasticsearch-certutil csr -name kibana-server -dns localhost

将生成的csr-bundle.zip压缩包解压到kibana的config文件夹下

使用以下命令生成crt文件

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

配置kibana.yml文件:

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

我这里遇到一些问题,卡住了

1. 工作目录是bin文件夹,不会改,只能在根目录执行kibana.bat启动文件

2. 报错: Illegal characters used in tag key:我感觉是文件格式不对报这个错,导致他识别不了,但是我使用不是一对的私钥和证书的时候他能识别出这个私钥不对,不懂是啥情况,找不到相关解决办法。要是遇到这个问题感觉就不用设置HTTPS访问了,就用普通的HTTP即可。

兄弟们要是解决了麻烦跟私信我,想了解下。

调试技巧

可以使用PowerShell执行启动文件,这样子报错就不会像cmd一下子闪退。

按住shift键并右键bin文件夹。

常见错误

同时配置密文和明文

failed to load SSL configuration [xpack.security.transport.ssl] - cannot specify both [keystore.secure_password] and [keystore.password]

原因:这是因为你在配置文件和cmd命令都配置了密码,cmd使用keytool对密码进行加密保存,而配置文件则是明文保存,将其中一个配置为空就行,比如配置明文,将密文配置为空,即输入第四步的命令后直接回车

没有添加客户端地址报错
Unable to retrieve version information from Elasticsearch nodes. Hostname/IP does not match certificate's altnames: IP: 127.0.0.1 is not in the cert's list:


 

报错:读取不到IKAnalyzer.cfg.xml

这是安装提词器的时候报错,好像是因为将提词器直接解压到相应目录会导致没权限读取,所以用cmd进行安装

elasticsearch-plugin install https://get.infini.cloud/elasticsearch/analysis-ik/9.0.1

修改ES账号密码

这里记得要先启动ES,如果要修改elastic账号就把粗体的内容改成elastic

elasticsearch-reset-password -u kibana_system -i --url https://localhost:9200

参考地址

启动kibana闪退解决方法_kibana启动闪退-CSDN博客

Kibana:为访问 Kibana 添加 https - Elastic Stack 8.0_kibana server.ssl.enable-CSDN博客

elasticsearch+kibana 开启 https 支持 - 临渊不羡渔 - 博客园

ELK生成PEM格式的ca证书、设置Https并使用Elasticsearch Java Client连接_elasticsearch-ca.pem-CSDN博客

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐