news 2026/8/25 7:41:09

三、elasticsearch之插件x-pack许可证安装说明

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
三、elasticsearch之插件x-pack许可证安装说明

概要

在elasticsearch中有30天的试用期,我找到网上大神的一些文章,试用了之后发现可以进行破解使用,整个过程比较简单,特此写下笔记
http://ip:9100/?auth_user=elastic&auth_password=123456
现在发现都访问不了,查了下日志才发现,我的license过期啦! 这时我才想起来x-pack好像是收费的。

破解x-pack

我的版本是x-pack-5.2.2,在elasticsearch插件中找到x-pack-5.2.2.jar,拷贝到其他目录下进行解压
找到LicenseVerifier.class (路径为:org.elasticsearch/license/LicenseVerifier.class)和XPackBuild.class(路径为:/org/elasticsearch/xpack/XPackBuild.class)文件

1.修改license

准备LicenseVerifier.java 和XPackBuild.java两个文件后进行替换

  • LicenseVerifier.java如下:
packageorg.elasticsearch.license;importjava.nio.*;importjava.util.*;importjava.security.*;importorg.elasticsearch.common.xcontent.*;importorg.apache.lucene.util.*;importorg.elasticsearch.common.io.*;importjava.io.*;publicclassLicenseVerifier{publicstaticbooleanverifyLicense(finalLicenselicense,finalbyte[]encryptedPublicKeyData){returntrue;}publicstaticbooleanverifyLicense(finalLicenselicense){returntrue;}}
  • XPackBuild.java如下:
packageorg.elasticsearch.xpack.core;importorg.elasticsearch.common.io.*;importjava.net.*;importorg.elasticsearch.common.*;importjava.nio.file.*;importjava.io.*;importjava.util.jar.*;publicclassXPackBuild{publicstaticfinalXPackBuildCURRENT;privateStringshortHash;privateStringdate;@SuppressForbidden(reason="looks up path of xpack.jar directly")staticPathgetElasticsearchCodebase(){finalURLurl=XPackBuild.class.getProtectionDomain().getCodeSource().getLocation();try{returnPathUtils.get(url.toURI());}catch(URISyntaxExceptionbogus){thrownewRuntimeException(bogus);}}XPackBuild(finalStringshortHash,finalStringdate){this.shortHash=shortHash;this.date=date;}publicStringshortHash(){returnthis.shortHash;}publicStringdate(){returnthis.date;}static{finalPathpath=getElasticsearchCodebase();StringshortHash=null;Stringdate=null;Label_0157:{shortHash="Unknown";date="Unknown";}CURRENT=newXPackBuild(shortHash,date);}}

2.打包成class
打包成class,而后替换。如果你的安装在/usr/local下,那么大概如下

  • LicenseVerifier

到LicenseVerifier.java所存放的目录下执行:

javac-cp"/usr/local/elasticsearch/lib/elasticsearch-5.2.2.jar:/usr/local/elasticsearch/lib/lucene-core-6.4.1.jar:/usr/local/elasticsearch/plugins/x-pack/x-pack-5.2.2.jar"LicenseVerifier.java
  • XPackBuild

到XPackBuild.java所存放的目录下执行:

javac-cp"/usr/local/elasticsearch/lib/elasticsearch-5.2.2.jar:/usr/local/elasticsearch/lib/lucene-core-6.4.1.jar:/usr/local/elasticsearch/plugins/x-pack/x-pack-5.2.2.jar"XPackBuild.java

如下:生成的所需文件

[root@linuxscripts]# ll total18-rw-r--r--1root root410Jun2311:49LicenseVerifier.class-rw-r--r--1root root523Jun2311:32LicenseVerifier.java-rw-r--r--1root root1508Jun2311:52XPackBuild.class-rw-r--r--1root root1311Jun2311:34XPackBuild.java

为了能够分辨的更清楚,创建一个目录demo,复制进去后解压,而后删除原来的包或者备份

[root@linux ]# cp /usr/local/elasticsearch/plugins/x-pack/x-pack-5.2.2.jar /data/scripts/demo/ [root@linux ]# cd /data/scripts/demo/ && jar -xvf x-pack-5.2.2.jar 解压到当前目录,注意,不会创建一个新文件夹,而是将所有jar包的内容全部解压到当前文件夹

将class文件覆盖到解压出的文件下

[root@linux scripts]# \cp LicenseVerifier.class /data/scripts/demo/org/elasticsearch/license/LicenseVerifier.class[root@linux scripts]# \cp XPackBuild.class /data/scripts/demo/org/elasticsearch/xpack/XPackBuild.class

当文件覆盖回去之后开始打包压缩

[root@linux scripts]# cd demo/[root@linux demo]# jar -cvfM0 x-pack-5.2.2.jar ./

参数解析:

-c 创建jar包
-v 显示过程信息
-f 指定jar包的文件名
-M 不产生所有文件的清单文件(Manifest.mf)
-0 产生jar包时不对其中的内容进行压缩处理

生成一个新的x-pack-5.2.2.jar包后覆盖到/usr/local/elasticsearch/plugins/x-pack/下,license修改完成,然后重启es

[root@linux demo]# \cp x-pack-5.2.2.jar /usr/local/elasticsearch/plugins/x-pack/[root@linux demo]# ps aux|egrep ^elastic|awk '{print $2}'|xargs kill && su elastic -c "/usr/local/elasticsearch/bin/elasticsearch -d"

3.申请license
打开elastic申请页面进行申请,会发送到邮箱,下载后进行编辑
https://register.elastic.co

将"expiry_date_in_millis":1565135999999修改"expiry_date_in_millis":3107746200000 # 1年变为50年
将"type":“basic"修改为"type”:“platinum” # 基础版变更为铂金版

  • 保存下来,修改后的文件可以重复使用到其它ES服务器

修改之前的许可证可用时间

[root@linux scripts]# curl -XGET -u elastic:123456 'http://localhost:9200/_license'{"license":{"status":"active","uid":"5227c16c-b7c8-4cd0-ad80-ab3d6200bca7","type":"trial","issue_date":"2020-06-22T08:18:57.356Z","issue_date_in_millis":1592813937356,"expiry_date":"2020-07-22T08:18:57.356Z","expiry_date_in_millis":1595405937356,"max_nodes":1000,"issued_to":"es_cluster","issuer":"elasticsearch","start_date_in_millis":-1}}

更新 license文件
把文件重命名为:license.json,接着上次到服务器,放在自己喜欢的目录中,接着在该目录中执行如下命令:

[root@linux scripts]# curl -XPUT -u elastic:123456 'http://localhost:9200/_xpack/license?acknowledge=true' -d @license.json{"acknowledged":true,"license_status":"valid"}[root@linux scripts]# curl -XPUT -u elastic:123456 'http://localhost:9200/_xpack/license?acknowledge=true' -H "Content-Type: application/json" -d @license.json{"acknowledged":true,"license_status":"valid"}

在查看修改之后的许可证可用时间

[root@linux scripts]# curl -XGET -u elastic:123456 'http://localhost:9200/_license'{"license":{"status":"active","uid":"45b6723c-ec7a-48de-ac5f-9625ca41acd1","type":"platinum","issue_date":"2020-06-23T00:00:00.000Z","issue_date_in_millis":1592870400000,"expiry_date":"2068-06-24T06:50:00.000Z",#到期时间变为2068年"expiry_date_in_millis":3107746200000,"max_nodes":100,"issued_to":"Bertram Bertram (???)","issuer":"Web Form","start_date_in_millis":1592870400000}}

到此,证书许可证完成修改!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/25 7:40:11

软件测试面试题库:1000道题助你系统备战

1. 软件测试面试题的价值与使用场景在软件测试行业,面试题集锦一直是求职者和从业者的刚需资源。这份包含1000道面试题及答案的文档,几乎涵盖了软件测试领域的全部核心知识点。从基础理论到自动化测试,从性能优化到安全测试,这套资…

作者头像 李华
网站建设 2026/8/25 7:39:13

利用OpenRouter与Inkling免费资源,从零构建AI智能体测试环境

在实际 AI 应用开发中,我们经常面临一个核心矛盾:一方面,我们需要快速测试和验证不同大语言模型(LLM)的能力,以找到最适合特定任务的模型;另一方面,直接对接各大模型厂商的 API 不仅…

作者头像 李华
网站建设 2026/8/25 7:35:02

Vue项目汉字转拼音实战:pinyin-pro集成与首字母索引组件开发

1. 项目缘起:为什么Vue项目需要汉字转拼音?在开发一个后台管理系统时,我遇到了一个非常具体的需求:用户列表需要支持按姓名首字母进行快速筛选和排序。用户数据中的姓名都是中文汉字,而前端需要一个类似通讯录的“A-Z”…

作者头像 李华
网站建设 2026/8/25 7:32:03

SpringBoot体育场地预约系统:毕业设计实战与二次开发指南

这次我们来看一个基于SpringBoot的体育场地预约系统,这是一个典型的Java Web毕业设计项目。对于计算机相关专业的同学来说,毕业设计选题既要体现技术栈的完整性,又要具备实际的应用场景和可展示性。这个体育场地预约系统项目,正好…

作者头像 李华
网站建设 2026/8/25 7:30:26

Ubuntu 22.04部署MinIO对象存储:从安装到生产环境配置

1. 项目概述:为什么要在Ubuntu上部署MinIO?如果你正在搭建一个需要存储图片、视频、文档或者任何二进制文件的Web应用、数据湖,或者只是想找一个能替代公有云对象存储的本地方案,那么MinIO绝对值得你花时间研究一下。它是一个用Go…

作者头像 李华