Elasticsearch X-Pack破解

1. 概述

接上一篇文章:Elasticsearch + Kibana + X-Pack + Head集群安装部署

安装部署好Elasticsearch环境并安装了安全组件x-pack。但是运行一段时间以后,Kibana无法正常登陆,但是程序却可以正常访问es,猜测可能Kibana访问的9200端口,程序访问了9300端口。不管怎么样,x-pack是出问题了。

x-pack是收费软件,安装x-pack有30天的试用期,30天以后license就会过期。

2. 破解x-pack

我使用的版本是5.5.0,在官网下载x-pack-5.5.0.zip包。

解压后,在elasticsearch目录找到x-pack-5.5.0.jar。

再把x-pack-5.5.0.jar进行解压,找到LicenseVerifier.class文件。(全路径 org.elasticsearch/license/LicenseVerifier.class)

使用反编译软件Luyten进行反编译查看。

2.1 修改license文件

创建LicenseVerifier.java文件,内容如下:

package org.elasticsearch.license;

public class LicenseVerifier
{
    public static boolean verifyLicense(final License license, final byte[] encryptedPublicKeyData) {
        return true;
    }

    public static boolean verifyLicense(final License license) {
        return true;
    }
}

2.2 编译LicenseVerifier.java并打包

编译及打包操作最好在Linux下进行。

# 切换LicenseVerified.java目录
cd /tmp/

# 进行编译,编译需要指定依赖的jar包文件。得到LicenseVerifier.class
javac "/opt/elasticsearch/lib/elasticsearch5.5.0.jar:/opt/elasticsearch/lib/lucene-core-6.6.0.jar:/opt/elasticsearch/plugins/x-pack/x-pack-5.5.0.jar" LicenseVerifier.java

# 对x-pack-5.5.0.jar解压
cp /opt/elasticsearch/plugins/x-pack/x-pack-5.5.0.jar /tmp/xpack
cd /tmp/xpack
jar -xf x-pack-5.5.0.jar  && rm -rf x-pack-5.5.0.jar 

# 把LicenseVerifier.class 文件替换
cp /tmp/LicenseVerifier.class /tmp/xpack/org/elasticsearch/license/LicenseVerifier.class

# 重新打包
java -cf x-pack-5.5.0.jar  ./

# 替换jar包(windows环境需自己拷贝,各节点都要替换)
cp x-pack-5.5.0.jar /opt/elasticsearch/plugins/x-pack/x-pack-5.5.0.jar /tmp/xpack

2.3 申请免费license

在官网(https://license.elastic.co/registration)填写信息,重点是邮箱和国家,会在邮箱中收到一个license json文件。

// 文件主要修改两个字段 type:证书类型 && expriy:到期时间
"type":"platinum"; 
"expiry_date_in_millis":2524579200999

type为软件版本,默认为basic,platinum是白金版,权限也很高。
expiry_date_in_millis就是你要截止的日期,我配置的是到2050年。

2.4 更新证书

# 更新证书
curl -XPUT -u elastic:changeme 'http://192.168.1.91:9200/_xpack/license' -d @license.json
# 检查证书
curl -XGET -u elastic:changeme 'http://192.168.1.91:9200/_license'

各个节点都要更新。

2.5. 重启elasticsearch服务

重新启动各节点es服务。

3. 参考资料

https://blog.csdn.net/u013066244/article/details/73927756

原文地址:https://www.cnblogs.com/jinhaolin/p/9792807.html