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

发布时间:2026/8/25 7:41:25
三、elasticsearch之插件x-pack许可证安装说明 概要在elasticsearch中有30天的试用期我找到网上大神的一些文章试用了之后发现可以进行破解使用整个过程比较简单特此写下笔记http://ip:9100/?auth_userelasticauth_password123456现在发现都访问不了查了下日志才发现我的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(reasonlooks up path of xpack.jar directly)staticPathgetElasticsearchCodebase(){finalURLurlXPackBuild.class.getProtectionDomain().getCodeSource().getLocation();try{returnPathUtils.get(url.toURI());}catch(URISyntaxExceptionbogus){thrownewRuntimeException(bogus);}}XPackBuild(finalStringshortHash,finalStringdate){this.shortHashshortHash;this.datedate;}publicStringshortHash(){returnthis.shortHash;}publicStringdate(){returnthis.date;}static{finalPathpathgetElasticsearchCodebase();StringshortHashnull;Stringdatenull;Label_0157:{shortHashUnknown;dateUnknown;}CURRENTnewXPackBuild(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.jarLicenseVerifier.javaXPackBuild到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.jarXPackBuild.java如下生成的所需文件[rootlinuxscripts]# 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复制进去后解压而后删除原来的包或者备份[rootlinux ]# cp /usr/local/elasticsearch/plugins/x-pack/x-pack-5.2.2.jar /data/scripts/demo/ [rootlinux ]# cd /data/scripts/demo/ jar -xvf x-pack-5.2.2.jar 解压到当前目录,注意,不会创建一个新文件夹,而是将所有jar包的内容全部解压到当前文件夹将class文件覆盖到解压出的文件下[rootlinux scripts]# \cp LicenseVerifier.class /data/scripts/demo/org/elasticsearch/license/LicenseVerifier.class[rootlinux scripts]# \cp XPackBuild.class /data/scripts/demo/org/elasticsearch/xpack/XPackBuild.class当文件覆盖回去之后开始打包压缩[rootlinux scripts]# cd demo/[rootlinux 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[rootlinux demo]# \cp x-pack-5.2.2.jar /usr/local/elasticsearch/plugins/x-pack/[rootlinux demo]# ps aux|egrep ^elastic|awk {print $2}|xargs kill su elastic -c /usr/local/elasticsearch/bin/elasticsearch -d3.申请license打开elastic申请页面进行申请会发送到邮箱下载后进行编辑https://register.elastic.co将expiry_date_in_millis:1565135999999修改expiry_date_in_millis:3107746200000 # 1年变为50年将type:“basic修改为type”:“platinum” # 基础版变更为铂金版保存下来修改后的文件可以重复使用到其它ES服务器修改之前的许可证可用时间[rootlinux 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接着上次到服务器放在自己喜欢的目录中接着在该目录中执行如下命令[rootlinux scripts]# curl -XPUT -u elastic:123456 http://localhost:9200/_xpack/license?acknowledgetrue -d license.json{acknowledged:true,license_status:valid}[rootlinux scripts]# curl -XPUT -u elastic:123456 http://localhost:9200/_xpack/license?acknowledgetrue -H Content-Type: application/json -d license.json{acknowledged:true,license_status:valid}在查看修改之后的许可证可用时间[rootlinux 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}}到此证书许可证完成修改