環(huán)境
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 沒(méi)有默認(rèn)密碼,需要自動(dòng)生成密碼:
bin/x-pack/setup-passwords auto
破解
反編譯class文件
在elasticsearch安裝目錄plugins/x-pack/找到x-pack-6.0.0.jar文件。
# 新建測(cè)試目錄
mkdir test
# 剪切到測(cè)試目錄
mv /usr/local/elasticsearch/plugins/x-pack/x-pack-6.0.0.jar test/
# 切換到測(cè)試目錄
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不準(zhǔn))反編譯,并拷貝內(nèi)容到新建的文件LicenseVerifier.java,內(nèi)容如下:
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
替換原來(lái)的class文件“
cp ../LicenseVerifier.class org/elasticsearch/license/
# 重新打包jar包
jar -cvf x-pack-6.0.0.jar ./*
# 覆蓋原來(lái)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
}
}
這里配置過(guò)期日期截至到2020年,白金版(platinum)。
保存文件為:license.json。
更新License文件
因?yàn)?code>elasticsearch 6.0.0,現(xiàn)在更新license文件時(shí),要么配置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
生效之后,再開(kāi)啟security,并開(kāi)啟SSL\TLS:
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
最后重啟elasticsearch。
查看License狀態(tài):
curl -XGET -u elastic:changeme "http://192.168.0.166:9200/_license"