环境
Ubuntu 16.04.2 LTS
JDK 1.8.0_131
XShell 5
Luyten 0.5.0
Elasticsearch 6.0
Kibana 6.0
Logstash 6.0
x-pack 6.0
注意:
不要在windows下加压缩jar包,要使用jar命令解压缩jar包。
x-pack 6.0.0 没有默认密码,需要自动生成密码:
bin/x-pack/setup-passwords auto
破解
反编译class文件
在elasticsearch安装目录plugins/x-pack/
找到x-pack-6.0.0.jar
文件。
# 新建测试目录
mkdir test
# 剪切到测试目录
mv /usr/local/elasticsearch/plugins/x-pack/x-pack-6.0.0.jar test/
# 切换到测试目录
cd test/
# 解压jar包
jar -xvf x-pack-6.0.0.jar
# 移除jar包
rm x-pack-6.0.0.jar
找到文件org.elasticsearch/license/LicenseVerifier.class
,并用Luyten
(jd-gui
不准)反编译,并拷贝内容到新建的文件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;
}
}
在Linux任意目录下重新编译LicenseVerifier.java
。
javac -cp "/usr/local/elasticsearch/lib/elasticsearch-6.0.0.jar:
/usr/local/elasticsearch/lib/lucene-core-7.0.1.jar:
/usr/local/elasticsearch/plugins/x-pack/x-pack-6.0.0.jar" LicenseVerifier.java
替换原来的class文件“
cp ../LicenseVerifier.class org/elasticsearch/license/
# 重新打包jar包
jar -cvf x-pack-6.0.0.jar ./*
# 覆盖原来x-pack的jar包
mv x-pack-6.0.0.jar /usr/local/elasticsearch/plugins/x-pack
配置新的license文件
{"license":{
"uid":"aaa",
"type":"platinum",
"issue_date_in_millis":1515024000000,
"expiry_date_in_millis":1596646399999,
"max_nodes":100,
"issued_to":"aaa",
"issuer":"Web Form",
"signature":"111",
"start_date_in_millis":1515024000000
}
}
这里配置过期日期截至到2020年,白金版(platinum)。
保存文件为:license.json
。
更新License文件
因为elasticsearch 6.0.0
,现在更新license文件时,要么配置SSL\TLS,要么就禁用security。
更新之前先配置elasticsearch.yml
,加入:
xpack.security.enabled: false
curl -XPUT -u elastic:changeme "http://192.168.0.166:9200/_xpack/license?acknowledge=true" -d @license.json
生效之后,再开启security,并开启SSL\TLS:
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
最后重启elasticsearch。
查看License状态:
curl -XGET -u elastic:changeme "http://192.168.0.166:9200/_license"
网友评论