热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

es上安装xparkTLS/SSL认证

在es集群上安装TLS。重要如果您是在现有群集上首次安装X-Pack,则必须执行完整群集重新启动。安装X-Pack后,必须在群集中的所有节点上启用安全性
在es集群上安装TLS。


重要
如果您是在现有群集上首次安装X-Pack,则必须执行完整群集重新启动。安装X-Pack后,必须在群集中的所有节点上启用安全性和安全性才能使群集正常运行。升级时通常可以执行滚动升级。

这里写图片描述




1. 要在Elasticsearch中安装X-Pack:


  • 可选:如果您想在没有互联网访问权限的机器上安装X-Pack:手动下载X-Pack zip文件: (sha512) https://artifacts.elastic.co/downloads/packs/x-pack/x-pack-6.2.1.zip
    注意

    1.1 .Elasticsearch,Kibana(一个开源的分析与可视化平台,搜索、查看、交互存放在Elasticsearch索引里的数据)和Logstash(分析log日志)的插件包含在同一个zip文件中。如果您已下载此文件以在其中一个其他产品上安装X-Pack,则可以重复使用相同的文件

    1.2 将zip文件传输到脱机机器上的临时目录。(不要将文件放在Elasticsearch插件目录中。)


  • 在ES_HOME群集中的每个节点上 运行

bin/elasticsearch-plugin install x-packX-Pack需要权限才能使Elasticsearch启动机器学习分析引擎。本地控制器确保启动的进程是有效的机器学习组件。

X-Pack安全性使您能够在您的弹性搜索集群中对流量进行加密。连接使用传输层安全性(TLS)进行保护,这通常称为“SSL”。



警告

没有加密的集群可以以纯文本的方式发送所有数据,包括密码,并且不能安装允许x包安全的许可证。

下面的步骤描述了如何在弹性堆栈的各个组件上启用加密。您必须执行适用于您的集群的每一个步骤。

为每个弹性搜索节点生成一个私钥和X.509证书。看到生成节点证书。

在集群中配置每个节点,以标识自己使用其签名证书并在传输层上启用TLS。还可以在HTTP层上启用TLS。在集群中的节点之间进行加密通信,并对HTTP客户端通信进行加密。

配置X-Pack监视以使用加密连接。看到监控和安全。

配置Kibana,以加密浏览器和Kibana服务器之间的通信,并通过HTTPS连接到弹搜索。参见在Kibana中配置安全性。

配置logstorage以使用TLS加密。请参阅在logstorage中配置安全性。

配置Beats以使用加密连接。看到跳动和安全。

配置Java传输客户机以使用加密通信。参见Java客户机和安全性。

配置Apache Hadoop的弹性搜索以使用安全传输。参阅Apache Hadoop安全性的弹性搜索。

加密通信Elasticsearch
X-Pack安全性使您能够在您的弹性搜索集群中对流量进行加密。使用传输层安全性(TLS/SSL)保护连接。
警告
没有加密的集群可以以纯文本的方式发送所有数据,包括密码,并且不能安装允许x包安全的许可证。
为了启用加密,您需要对集群中的每个节点执行以下步骤:
安装X-Pack Elasticsearch。
生成一个私钥和X.509证书。
每个节点配置为:
需要:在传输层启用TLS。

建议:在HTTP层上启用TLS

certutil工具讲解

参数
ca
指定生成新的本地证书颁发机构(CA)。此参数不能与csr或cert参数一起使用。
cert
指定生成新的X.509证书和密钥。此参数不能与csr或ca参数一起使用。
企业社会责任
指定生证书签名请求。此参数不能与ca或cert参数一起使用。
——ca
指定现有CA密钥对的路径(在PKCS#12格式中)。此参数不能与ca或csr参数一起使用。
——ca-cert
指定现有CA证书的路径(在PEM格式中)。您还必须指定-ca-key参数。ca-cert参数不能与ca或csr参数一起使用。
——ca-dn <名称>
定义用于生成CA证书的专有名称(DN)。默认值是CN&#61;Elastic Certificate Tool Autogenerated CA.此参数不能与csr参数一起使用。
——ca-key
指定现有CA私钥的路径(在PEM格式中)。您还必须指定-ca-cert参数。ca-key参数不能与ca或csr参数一起使用。
——ca-pass <密码>
为现有的CA私钥或生成的CA私钥指定密码。此参数不能与ca或csr参数一起使用。
——天
指定一个整数值&#xff0c;它表示生成的证书有效的天数。默认值是1095。此参数不能与csr参数一起使用。
——dns
指定一个以逗号分隔的DNS名称列表。此参数不能与ca参数一起使用。
- e
配置设置。
- h,帮助
返回所有的命令参数。
——在
指定用于在静默模式下运行的文件。输入文件必须是YAML文件。此参数不能与ca参数一起使用。
——ip
指定一个以逗号分隔的IP地址列表。此参数不能与ca参数一起使用。
——keep-ca-key
当在cert模式中使用自动生成的CA时&#xff0c;指定保留CA私钥以供将来使用。
——keysize <比特>生成
定义生成的RSA密钥中使用的比特数。默认值是2048。
——多个
指定为多个实例生成文件。此参数不能与ca参数一起使用。
——名称
指定生成的证书的名称。此参数不能与ca参数一起使用。
——从
指定输出文件的路径。
——通过<密码>
指定生成的私钥的密码。
- - - pem
用PEM格式生成证书和密钥&#xff0c;而不是PKCS#12。此参数不能与csr参数一起使用。
- s,沉默
显示最小输出。

- v,详细

显示详细的输出。

生成节点证书

    TLS要求X.509证书对正在进行通信的应用程序进行加密和身份验证。为了使节点之间的通信真正安全&#xff0c;必须对证书进行验证。在弹性搜索集群中验证证书真实性的推荐方法是信任签署证书的证书颁发机构(CA)。通过这样做&#xff0c;当节点被添加到集群中时&#xff0c;它们只需要使用由相同CA签名的证书&#xff0c;并且节点被自动允许加入集群。此外&#xff0c;还建议证书包含与节点的IP地址和DNS名称对应的主题替代名称(SAN)&#xff0c;以便可以执行主机名验证。

为了简化为弹性堆栈生成证书的过程&#xff0c;一个命令行工具certutil已经包含在X-Pack中。该工具负责生成CA并与CA. certutil签署证书&#xff0c;可以通过使用输入文件以交互方式或在静默模式中使用。certutil工具还支持生成证书签名请求(CSR)&#xff0c;从而可以使用一个商业或组织特定的CA来签署证书。例如:

1.可选:为您的弹性搜索集群创建一个证书颁发机构。

例如&#xff0c;使用certutil ca命令:

bin/x-pack/certutil ca您可以配置集群&#xff0c;以信任所有具有此CA签名的证书的节点。



该命令输出一个文件&#xff0c;默认名称是弹-stack-ca.p12。该文件是一个PKCS#12密钥存储库&#xff0c;其中包含您的CA的公共证书和用于为每个节点签署证书的私钥。



certutil命令还提示您输入密码以保护文件和密钥。如果您计划将来在集群中添加更多的节点&#xff0c;请保留该文件的副本并记住它的密码。




2.为集群中的每个节点生成证书和私钥。



例如&#xff0c;使用certutil cert命令:

bin/x-pack/certutil cert --ca elastic-stack-ca.p12输出是一个PKCS#12密钥存储库&#xff0c;其中包括节点证书、节点密钥和CA证书。

还会提示输入密码。您可以为您的证书和密钥输入密码&#xff0c;或者您可以按enter键将密码留空。

默认情况下&#xff0c;certutil生成的证书中没有主机名信息(也就是说&#xff0c;它们没有任何主题替代名称字段)。这意味着您可以为集群中的每个节点使用证书&#xff0c;但是您必须关闭主机名验证&#xff0c;如下面的配置所示。

如果您希望在集群中使用主机名验证&#xff0c;请在每个节点上运行certutil cert命令&#xff0c;并提供——名称、dns和——ip选项。您应该保护输出文件&#xff0c;因为它们包含实例的私钥。

或者&#xff0c;如果您想使用某个商业或组织特定的CA&#xff0c;您可以使用certutil csr命令为集群中的节点生成证书签名请求(csr)。有关更多信息&#xff0c;请参阅certutil。

在无声模式下使用certutil。

要使用静默模式的操作&#xff0c;您必须创建包含有关实例信息的YAML文件。它必须符合下列格式:

instances:- name: "node1" ip: - "192.0.2.1"dns: - "node1.mydomain.com"- name: "node2"ip:- "192.0.2.2"- "198.51.100.1"- name: "node3"- name: "node4"dns:- "node4.mydomain.com"- "node4.internal"- name: "CN&#61;node5,OU&#61;IT,DC&#61;mydomain,DC&#61;com"filename: "node5"

1.实例的名称。这可以是一个简单的字符串值&#xff0c;也可以是一个专有名称(DN)。这是唯一需要的字段。2.表示此实例的IP地址的可选字符串数组。允许IPv4和IPv6值。这些值作为主题替换名称添加。3.表示此实例的DNS名称的可选字符串数组。这些值作为主题替换名称添加。4.用于此实例的文件名。此名称用作包含输出中实例文件的目录的名称。它也用于目录中文件的名称。这个文件名不应该有扩展名。注意:如果为实例提供的名称不代表有效的文件名&#xff0c;那么文件名字段必须存在。

当YAML文件准备就绪时&#xff0c;可以使用certutil命令生成证书或证书签名请求。只需使用-in参数指定文件的位置。例如:

bin/x-pack/certutil cert --silent --in instances.yml --out test1.zip --pass testpassword这个命令生成一个压缩test1。zip文件。解压输出文件后&#xff0c;在实例中列出的每个实例都有一个目录。yml文件。每个实例目录都包含一个PKCS#12 (.p12)文件&#xff0c;其中包含实例证书、实例私钥和CA证书。

您还可以使用YAML文件来生成证书签名请求。例如:

bin/x-pack/certutil csr --silent --in instances.yml --out test2.zip --pass testpassword该命令生成一个压缩文件&#xff0c;该文件包含每个实例的目录。每个实例目录都包含一个证书签名请求(*。csr文件)和私钥(*。关键文件)。


3.将节点证书复制到适当的位置。
    将适用的.p12文件复制到每个节点的弹性搜索配置目录中的目录中。例如,/home/es/config/certs.不需要将CA文件复制到这个目录。对于要配置的每个附加弹性产品&#xff0c;请将证书复制到相关的配置目录。

请注意
如果您选择不使用certutil&#xff0c;那么您获得的证书必须允许clientAuth和serverAuth&#xff0c;如果扩展的键使用扩展存在。证书需要在PEM或PKCS#12格式中。尽管不需要&#xff0c;但强烈建议证书包含节点的DNS名称和/或IP地址&#xff0c;以便使用主机名验证。

 
对集群中的节点之间的通信进行加密。

    传输网络层用于集群中节点之间的内部通信。当启用X-Pack安全性时&#xff0c;必须使用TLS确保节点之间的通信是加密的。

1.生成节点证书。

2.启用TLS并指定访问节点证书所需的信息。
        如果已签名的证书是PKCS#12格式&#xff0c;请将以下信息添加到弹性搜索。每个节点的yml文件:

xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12 1.如果您使用了——dns或——使用certutil cert命令的ip选项&#xff0c;并且您希望启用严格的主机名检查&#xff0c;那么将验证模式设置为full。



2.如果为每个节点创建单独的证书&#xff0c;则可能需要在每个节点上定制此路径。如果文件名与节点名匹配&#xff0c;您可以使用certs/${node.name}.p12格式。



3.certutil输出包括PKCS#12密钥存储库中的CA证书&#xff0c;因此密钥存储库也可以用作信任存储库。这个名称应该与密钥库匹配。路径值。

如果证书是PEM格式&#xff0c;则向弹性搜索添加以下信息。每个节点的yml文件:

xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.key: /home/es/config/x-pack/node01.key
xpack.security.transport.ssl.certificate: /home/es/config/x-pack/node01.crt
xpack.security.transport.ssl.certificate_authorities: [ "/home/es/config/x-pack/ca.crt" ] 1.如果您使用了——dns或——使用certutil cert命令的ip选项&#xff0c;并且您希望启用严格的主机名检查&#xff0c;那么将验证模式设置为full。2.到节点密钥文件的完整路径。这必须是弹性搜索配置目录中的一个位置。3.节点证书的完整路径。这必须是弹性搜索配置目录中的一个位置。4.应该信任的CA证书的路径数组。这些路径必须是弹性搜索配置目录中的一个位置。
3.如果您使用密码保护了节点的证书&#xff0c;请将密码添加到您的弹性搜索密钥存储库中:

    如果签署的证书是PKCS#12格式&#xff0c;请使用以下命令:

        

bin/elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_passwordbin/elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password    如果证书是PEM格式&#xff0c;请使用以下命令:

             

bin/elasticsearch-keystore add xpack.security.transport.ssl.secure_key_passphrase
4.重启Elasticsearch。

        您必须执行一个完整的集群重启。配置为使用TLS的节点不能与使用未加密网络的节点通信(反之亦然)。启用TLS之后&#xff0c;您必须重新启动所有节点&#xff0c;以保持跨集群的通信。

请注意

所有与tls相关的节点设置都被认为是高度敏感的&#xff0c;因此不会通过节点info API公开任何这些设置的更多信息&#xff0c;参见安全设置。


                                                    加密HTTP客户端通信

当启用X-Pack安全性时&#xff0c;您可以选择使用TLS来确保HTTP客户机和集群之间的通信被加密。

  注意&#xff1a;强烈建议在HTTP层上启用TLS&#xff0c;但不是必需的。如果您在弹性搜索中启用了HTTP层上的TLS&#xff0c;那么您可能需要在弹性堆栈的其他部分和您使用的任何弹性搜索客户端进行配置更改。

    1.如果您还没有这样做&#xff0c;请生成节点证书。
    2.启用TLS并指定访问节点证书所需的信息。
            如果证书是PKCS#12格式&#xff0c;将以下信息添加到弹性搜索。每个节点的yml文件:

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 1.如果为每个节点创建单独的证书&#xff0c;则可能需要在每个节点上定制此路径。如果文件名与节点名匹配&#xff0c;您可以使用certs/${node.name}.p12格式。2.certutil输出包括PKCS#12密钥存储库中的CA证书&#xff0c;因此密钥存储库也可以用作信任存储库。这个名称应该与密钥库匹配。路径值。

如果证书是PEM格式&#xff0c;则向弹性搜索添加以下信息。每个节点的yml文件:

    

xpack.security.http.ssl.enabled: true
xpack.security.http.ssl.key: /home/es/config/x-pack/node01.key
xpack.security.http.ssl.certificate: /home/es/config/x-pack/node01.crt
xpack.security.http.ssl.certificate_authorities: [ "/home/es/config/x-pack/ca.crt" ] 1.到节点密钥文件的完整路径。这必须是弹性搜索配置目录中的一个位置。2.节点证书的完整路径。这必须是弹性搜索配置目录中的一个位置。3.应该信任的CA证书的路径数组。这些路径必须是弹性搜索配置目录中的一个位置。

3.如果您使用密码保护了节点的证书&#xff0c;请将密码添加到您的弹性搜索密钥存储库中:



     如果签署的证书是PKCS#12格式&#xff0c;请使用以下命令:

      

bin/elasticsearch-keystore add xpack.security.http.ssl.keystore.secure_passwordbin/elasticsearch-keystore add xpack.security.http.ssl.truststore.secure_password

      如果证书是PEM格式&#xff0c;请使用以下命令:

    

bin/elasticsearch-keystore add xpack.security.http.ssl.secure_key_passphrase
4.重启Elasticsearch。




请注意&#xff1a;

       所有与tls相关的节点设置都被认为是高度敏感的&#xff0c;因此不会通过节点info API公开任何这些设置的更多信息&#xff0c;参见安全设置。




推荐阅读
  • ElasticSerach初探第一篇认识ES+环境搭建+简单MySQL数据同步+SpringBoot整合ES
    一、认识ElasticSearch是一个基于Lucene的开源搜索引擎,通过简单的RESTfulAPI来隐藏Lucene的复杂性。全文搜索,分析系统&# ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • MACElasticsearch安装步骤及验证方法
    本文介绍了MACElasticsearch的安装步骤,包括下载ZIP文件、解压到安装目录、启动服务,并提供了验证启动是否成功的方法。同时,还介绍了安装elasticsearch-head插件的方法,以便于进行查询操作。 ... [详细]
  • 目录浏览漏洞与目录遍历漏洞的危害及修复方法
    本文讨论了目录浏览漏洞与目录遍历漏洞的危害,包括网站结构暴露、隐秘文件访问等。同时介绍了检测方法,如使用漏洞扫描器和搜索关键词。最后提供了针对常见中间件的修复方式,包括关闭目录浏览功能。对于保护网站安全具有一定的参考价值。 ... [详细]
  • Tomcat安装与配置教程及常见问题解决方法
    本文介绍了Tomcat的安装与配置教程,包括jdk版本的选择、域名解析、war文件的部署和访问、常见问题的解决方法等。其中涉及到的问题包括403问题、数据库连接问题、1130错误、2003错误、Java Runtime版本不兼容问题以及502错误等。最后还提到了项目的前后端连接代码的配置。通过本文的指导,读者可以顺利完成Tomcat的安装与配置,并解决常见的问题。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • EPICS Archiver Appliance存储waveform记录的尝试及资源需求分析
    本文介绍了EPICS Archiver Appliance存储waveform记录的尝试过程,并分析了其所需的资源容量。通过解决错误提示和调整内存大小,成功存储了波形数据。然后,讨论了储存环逐束团信号的意义,以及通过记录多圈的束团信号进行参数分析的可能性。波形数据的存储需求巨大,每天需要近250G,一年需要90T。然而,储存环逐束团信号具有重要意义,可以揭示出每个束团的纵向振荡频率和模式。 ... [详细]
  • 本文介绍了使用postman进行接口测试的方法,以测试用户管理模块为例。首先需要下载并安装postman,然后创建基本的请求并填写用户名密码进行登录测试。接下来可以进行用户查询和新增的测试。在新增时,可以进行异常测试,包括用户名超长和输入特殊字符的情况。通过测试发现后台没有对参数长度和特殊字符进行检查和过滤。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • macOS Big Sur全新设计大版本更新,10+个值得关注的新功能
    本文介绍了Apple发布的新一代操作系统macOS Big Sur,该系统采用全新的界面设计,包括图标、应用界面、程序坞和菜单栏等方面的变化。新系统还增加了通知中心、桌面小组件、强化的Safari浏览器以及隐私保护等多项功能。文章指出,macOS Big Sur的设计与iPadOS越来越接近,结合了去年iPadOS对鼠标的完善等功能。 ... [详细]
  • Android日历提醒软件开源项目分享及使用教程
    本文介绍了一款名为Android日历提醒软件的开源项目,作者分享了该项目的代码和使用教程,并提供了GitHub项目地址。文章详细介绍了该软件的主界面风格、日程信息的分类查看功能,以及添加日程提醒和查看详情的界面。同时,作者还提醒了读者在使用过程中可能遇到的Android6.0权限问题,并提供了解决方法。 ... [详细]
  • Apache Shiro 身份验证绕过漏洞 (CVE202011989) 详细解析及防范措施
    本文详细解析了Apache Shiro 身份验证绕过漏洞 (CVE202011989) 的原理和影响,并提供了相应的防范措施。Apache Shiro 是一个强大且易用的Java安全框架,常用于执行身份验证、授权、密码和会话管理。在Apache Shiro 1.5.3之前的版本中,与Spring控制器一起使用时,存在特制请求可能导致身份验证绕过的漏洞。本文还介绍了该漏洞的具体细节,并给出了防范该漏洞的建议措施。 ... [详细]
  • Sleuth+zipkin链路追踪SpringCloud微服务的解决方案
    在庞大的微服务群中,随着业务扩展,微服务个数增多,系统调用链路复杂化。Sleuth+zipkin是解决SpringCloud微服务定位和追踪的方案。通过TraceId将不同服务调用的日志串联起来,实现请求链路跟踪。通过Feign调用和Request传递TraceId,将整个调用链路的服务日志归组合并,提供定位和追踪的功能。 ... [详细]
  • 本文介绍了在无法联网的情况下,通过下载rpm包离线安装zip和unzip的方法。详细介绍了如何搜索并下载合适的rpm包,以及如何使用rpm命令进行安装。 ... [详细]
author-avatar
gjagtm2502855737
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有