前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >如何配置Elasticsearch的SSL证书开启HTTPS访问

如何配置Elasticsearch的SSL证书开启HTTPS访问

原创
作者头像
空洞的盒子
发布2024-10-14 14:39:51
发布2024-10-14 14:39:51
2.6K1
举报
文章被收录于专栏:JD的专栏JD的专栏大数据生态

前言:在Elasticsearch服务安装完成之后,我们会在安装过程中配置xpack.security证书,来实现对Elasticsearch服务的登录认证。此时当我们对Elasticsearch集群数据节点发起请求时,是以http://IP:9200的方式进行访问。

如何安装Elasticsearch集群并配置xpack.security证书,大家可以参考我的另一篇文章https://cloud.tencent.com/developer/article/2455893

背景:Elasticsearch8.x版本默认启用了安全功能,包括TLS加密。为了确保数据在网络传输中为加密传输,我们就需要通过配置SSL证书,并启用HTTPS访问。

一.生成SSL证书

1.使用 elasticsearch-certutil 生成证书

首先,进入Elasticsearch安装目录,执行以下命令来生成证书:

代码语言:bash
复制
./bin/elasticsearch-certutil http

这条命令会让我们进入http证书生成的交互界面,选择是否生成自签名证书或使用已有的证书。

首先这里会让我们选择是否生成CSR,然后通过企业证书管理中心基于CSR统一生成CA整数。这里我们需要的是生成自签名证书,所以这里输入N。

然后进入当前步骤,选择是否使用现有证书,由于我们是第一次生成证书,所以这里选择N。

在上一步选择N后,进入证书生成过程,在这一步证书生成完成,会让我们选择是否需要对证书进行修改。这里我们没有对证书需要进行修改的项,直接选择N,进入下一步。如果需要配置Key SIze,或者证书有效时长,则可以输入y,进行相关项的配置。

在这一步,我们需要对CA证书配置密码,以确保证书的安全性。输入并确认密码,然后回车进入下一步。

在这一步设置证书有效时长,这里我们设置了5年。证书有效时长支持设置年月日。根据样例与个人需要设置即可。

在这一步,我们需要选择是为节点生成单独的证书,还是为集群生成统一的证书。这里我们是统一的地址对集群进行访问。所以我们选择N,进入集群证书生成步骤。

在这一步,我们需要配置需要哪些集群的节点。这一步骤中,我们配置需要进行访问的数据节点的hostname,每输入一个回车保存,然后输入下一个。直到配置完所有需要连接的节点的hostname。在当前环境中,样例是通过节点IP的方式对集群进行访问,所以配置的是IP地址。

在输入完成后,证书生成会提示我们,进行相关信息的确认。确认无误后,输入Y保存。

配置完成后,证书生成工具会提示我们是否还需要进行修改。如果不需要修改,输入N即可。

在这一步中,证书生成工具提示我们对私钥进行密码的配置。该私钥将被应用与我们生成的http.p12证书中。

当我们进行完上述步骤后,SSL证书就已经生成完成。在Elasticsearch安装目录下,我们就可以看到一个elasticsearch-ssl-http.zip的证书文件压缩包。

解压证书压缩包。

代码语言:txt
复制
unzip elasticsearch-ssl-http.zip -d  elasticsearch-ssl-http

在证书压缩包中,我们可以看到三个文件夹。

在elasticsearch文件夹中就保存着我们生成的http.p12证书。

这时,我们需要再Elasticsearch安装目录下的config文件夹中找到elasticsearch.yml,添加如下内容:

代码语言:xml
复制
xpack.security.http.ssl.enabled: true
xpack.security.http.ssl.keystore.path: /证书所在目录/http.p12
xpack.security.http.ssl.keystore.password: "生成证书时配置的证书密码"

添加完成后保存退出,重启Elasticsearch服务。使配置生效。

代码语言:txt
复制
./bin/elasticsearch -d -p pid

对于Elasticsearch集群中的其他节点,我们只需要将证书拷贝至相应节点下的同样目录中保存,然后编辑elasticsearch.yml添加上述内容,重启Elasticsearch服务即可。

重启完成后,我们重新对Elasticsearch服务进行访问。此时就需要通过https://IP:9200的方式进行访问。可以发现使用HTTPS与HTTP两种不同方式对Elasticsearch服务进行访问的差异;

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一.生成SSL证书
    • 1.使用 elasticsearch-certutil 生成证书
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档